{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Modeling of bank failures by FDIC \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "In this assignment you will be using:\n",
    "- Decision Trees\n",
    "- Random Forests\n",
    "- Boosted Trees\n",
    "\n",
    "All in the context of classification problem as applied to bank defaults data set.\n",
    "Let's get started!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## About iPython Notebooks ##\n",
    "\n",
    "iPython Notebooks are interactive coding environments embedded in a webpage. You will be using iPython notebooks in this class. You only need to write code between the ### START CODE HERE ### and ### END CODE HERE ### comments. After writing your code, you can run the cell by either pressing \"SHIFT\"+\"ENTER\" or by clicking on \"Run Cell\" (denoted by a play symbol) in the upper bar of the notebook. \n",
    "\n",
    "We will often specify \"(≈ X lines of code)\" in the comments to tell you about how much code you need to write. It is just a rough estimate, so don't feel bad if your code is longer or shorter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import time\n",
    "\n",
    "import os\n",
    "import functools\n",
    "import math\n",
    "import random\n",
    "import sys, getopt\n",
    "\n",
    "sys.path.append(\"..\")\n",
    "import grading\n",
    "\n",
    "try:\n",
    "    import matplotlib.pyplot as plt\n",
    "    %matplotlib inline\n",
    "except:\n",
    "    pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "### ONLY FOR GRADING. DO NOT EDIT ###\n",
    "submissions=dict()\n",
    "assignment_key=\"HnqO7_GcEeeQcBJXIhP2bA\" \n",
    "all_parts=[\"Pb9kd\", \"ZdjyW\", \"IfVpy\",\"Tifr3\",\"X8djk\"]\n",
    "### ONLY FOR GRADING. DO NOT EDIT ###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# COURSERA_TOKEN = # the key provided to the Student under his/her email on submission page\n",
    "# COURSERA_EMAIL = # the email\n",
    "COURSERA_TOKEN= \" \"\n",
    "COURSERA_EMAIL= \" \""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# common cell - share this across notebooks\n",
    "state_cols = ['log_TA','NI_to_TA', 'Equity_to_TA', 'NPL_to_TL', 'REO_to_TA', \n",
    "              'ALLL_to_TL', 'core_deposits_to_TA', 'brokered_deposits_to_TA', \n",
    "              'liquid_assets_to_TA', 'loss_provision_to_TL', \n",
    "              'ROA', \n",
    "              'NIM', 'assets_growth']\n",
    "\n",
    "# Macro Economic Variables (MEVs)\n",
    "all_MEVs = np.array(['term_spread',\n",
    "                    'stock_mkt_growth',\n",
    "                    'real_gdp_growth',\n",
    "                    'unemployment_rate_change',\n",
    "                    'treasury_yield_3m',\n",
    "                    'bbb_spread',\n",
    "                    'bbb_spread_change'])\n",
    "\n",
    "MEV_cols = all_MEVs.tolist()\n",
    "\n",
    "next_state_cols = ['log_TA_plus_1Q','NI_to_TA_plus_1Q', 'Equity_to_TA_plus_1Q', 'NPL_to_TL_plus_1Q', 'REO_to_TA_plus_1Q', \n",
    "                   'ALLL_to_TL_plus_1Q', 'core_deposits_to_TA_plus_1Q', 'brokered_deposits_to_TA_plus_1Q', \n",
    "                   'liquid_assets_to_TA_plus_1Q', 'loss_provision_to_TL_plus_1Q', \n",
    "                   'ROA_plus_1Q', \n",
    "                   'NIM_plus_1Q', \n",
    "                   'assets_growth_plus_1Q', \n",
    "                   'FDIC_assessment_base_plus_1Q_n']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of unique dates on which defaulted within 1-st year 39\n",
      "Number of unique banks defaulted within 1-st year 472\n"
     ]
    }
   ],
   "source": [
    "df_train = pd.read_hdf(os.getcwd() + '/data/df_train_FDIC_defaults_1Y.h5', key='df')\n",
    "df_test = pd.read_hdf(os.getcwd() + '/data/df_test_FDIC_defaults_1Y.h5', key='df')\n",
    "df_data = pd.read_hdf(os.getcwd() + '/data/data_adj_FDIC_small.h5', key='df')\n",
    "df_closure_learn = pd.read_hdf(os.getcwd() + '/data/df_FDIC_learn.h5', key='df')\n",
    "\n",
    "df_all_defaulters_in_1Y = df_closure_learn[df_closure_learn.defaulter == 1].reset_index().groupby('IDRSSD').apply(lambda g: g.iloc[len(g)-3])\n",
    "selected_dates = df_all_defaulters_in_1Y.date.unique()\n",
    "defaulted_banks = df_all_defaulters_in_1Y['IDRSSD'].unique()\n",
    "print('Number of unique dates on which defaulted within 1-st year %d'  % len(selected_dates))\n",
    "print('Number of unique banks defaulted within 1-st year %d' % len(defaulted_banks))\n",
    "\n",
    "# failure dates\n",
    "# df_data[df_data['Failure / Assistance '].notnull()].date.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# function for a flexible way to make the train and test sets\n",
    "def make_train_and_test(df_in, perc_train=66.0, split_by_IDRSSD=True):\n",
    "    \n",
    "    reset_index_flag=False\n",
    "    df = df_in.copy()\n",
    "    if 'IDRSSD' in df.index.names:\n",
    "        reset_index_flag = True\n",
    "        df.reset_index(inplace=True)\n",
    "    \n",
    "    len_df = len(df)\n",
    "    len_df_train = int(np.floor(0.01*perc_train*len_df))\n",
    "    \n",
    "    if split_by_IDRSSD == True:\n",
    "        # split by names\n",
    "        unique_IDRSSD = df.IDRSSD.unique()\n",
    "        num_unique_IDRSSD = len(unique_IDRSSD)\n",
    "        num_IDRSSD_train = int(np.floor(0.01*perc_train*num_unique_IDRSSD))\n",
    "        \n",
    "        # re-shuffle the list of IDRSSD\n",
    "        np.random.shuffle(unique_IDRSSD)\n",
    "        IDRSSD_train = unique_IDRSSD[0:num_IDRSSD_train]\n",
    "        IDRSSD_test = unique_IDRSSD[num_IDRSSD_train:]\n",
    "        \n",
    "        df_train = df[np.in1d(df.IDRSSD, IDRSSD_train)].copy()\n",
    "        df_test = df[np.in1d(df.IDRSSD, IDRSSD_test)].copy()\n",
    "        \n",
    "    elif split_by_IDRSSD == False:\n",
    "        # split by rows\n",
    "    \n",
    "        idx = np.arange(len_df)\n",
    "        np.random.shuffle(idx)\n",
    "        df_train = df.ix[idx[0:len_df_train]]\n",
    "        df_test = df.ix[idx[len_df_train:]]\n",
    "\n",
    "    return df_train, df_test   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize binary classification data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc44a97b0f0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nhoIkqfD/AUgAd2Hdl6vDAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc4494d0400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_test.plot(x=state_cols[0], y='defaulter', kind='scatter')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAJdCAYAAACCrVtqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8XHWd8PHPN2nStKUEW6QUShtQRCmtASogLqVSHnGV\n6qKAXVLERczS6gIuq7ZELrWb50HFB3wQKpWCpYlclouUS1mgNhQUcAstvSEokNTScAuQ3tImmXyf\nP845yZmZc+aSzGQu+b77mldmzvV3JtOT7/wu35+oKsYYY4wxJv+U5LoAxhhjjDEmmAVqxhhjjDF5\nygI1Y4wxxpg8ZYGaMcYYY0yeskDNGGOMMSZPWaBmjDHGGJOnLFDLARG5VUSucJ+fLiLN/TxO6L4i\nMkxEVESq+lvO/py3mInIeBF5RkR2ishPk2xbKiK7RGSi+7pBRK7p53lD9xWRi0SkqT/HHch5zdBm\n97DCZPewwjQs1wUoZO5/9HFAxLf4E6q6PdF+qnpRNstlsuZiYDtwiiZJQKiqEWC/QSmVMf1k97Ah\nx+5hBcgCtYGbpapP5roQZlBMArYku8EZU2DsHjZ02D2sAFnTZxaISImI3Csib4nIhyLSJCKf8q1P\nVA08QUQeEJF3ReQNEfmub91IEVkuIh+IyGbg+BSKM8s9znsicq2IlLjHOlJEVovI++665SJS6TvX\nNhH5dxHZKCLtInKniAwPKfP3RWSTiBwiIgeJyKPudb8vImtC9vmNiFwbs+wREbnEfX6FiGwXkR0i\n8hcRmRFynAYR+X8istKtzn9WRA73rf8HEVnrXsOfReRE37pnRGShiPzJ3fcxERkTcp7lQA1whdsc\nMENEPisiz7nX2uqWo8zdPmGzjYh8RURecvd9RkSO8a07XkTWu2W6Ewh8331KRORm9xpfFpHP+451\nkbtsp4i8JiIX+dadLiLNIvJD9/O2XUS+GVLe/UVkjYhcL44zfcfdJiLfT1JGU0DsHmb3MLuH5RFV\ntUc/H0AzcHrA8hLgW8BooAL4FbDWt74BuMZ9fjrQ7NtvPXAFUA583D3HTHf9dUAT8BHcb0bevgFl\nGAYo8KRv+78B33LXfwKY6Z7nIOCPwHW+/bcBzwEHA2OBV4GLAsr8E2AtMNZ9/XP3esvcY08PKd9p\n7rWJ+3os0IHTDDMZaAEOdtcdDhwRcpwG4D1gmnvOu4EGd92BQDvwz+77cT7QBnzEXf8M8FfgSGAk\n8DTwnwl+372/N/f1Z4AT3WMf4b5H34t5/6sCfuefAd52f5YCFwKvue/XcPe9v8S9ntlAl/+8MWW6\nCOj2bX8e8AFwgLt+lls2cd/zDmCq7/fYDVzt7vsVYDewv7/M7vv4Qsy1vwuc7D4fAxyX6/+P9kj/\ngd3DwO5hdg/L83uY1agN3O/dbxQfisjvAVS1R1V/q6o7VXUvzgfleBEZleRYn8X5gP1vVe1U1b8B\nS3E+6ADn4vwn/EBVW3BuJslc69v+/+H8h0dVX1XVVe553gGuB06N2fcGVX1LVduAh4Fq3zoRkV+6\n+5zmbgPOf8hDgInusQO/jeLcrMvca/au7WlVfRvnP14FMFlEhqnqG6r6eoJrvFdV16pqF9DoK+cs\nYLOq3qmq3aq6HHgd+LJv36Wq+ldV3QP8V8w1JqSq/6Oqz7vHfh1YQvx7GKQWuNndP6Kqt7nLPwN8\nDufmeKOqdqnqXcC6JMdr9W3/O+AN4B/dMj6kqq+r4w/AKuAU3757cT5TXaq6AtiH8wfQMwFYg/OH\n4xrf8i7gaBEZrarvq+qLKVy3yU92D7N7mN3D8vgeZoHawP2Tqh7gPv4JekfL/ExEXheRHTjfAsGJ\n6hOZBEz03TQ/BH6I840QYDzwd9/2LSmUL3b7Q9wyHiwi94jIm24ZfxtQvrd8z/cQ3bF0LM43oXpV\n3eFbfq17nlVuNfUPggqlqj043xz/2V10Hs4NClV9Bbgc55vuO26TxcFBx0lSzkOIf49agEOT7SvO\nqLZd7uOHQScVkU+6TR1vue/hT0j+Owbn9/yjmN/zeLdchwDbVNXfhyTZ7zloe+/3fKaIPO824XwI\nfCGmjO+p02nYE/t7noXzzfo3Mec8C+fb61ZxmsVOxBQqu4fZPczuYXl8D7NALTu+CXwJp5q2Eqf6\nH5yq20T+DvzVd9M8QFVHq+osd/1bwGG+7SemUJbY7b3RXD/F+eYxRVX3x2nmSFY+v/dwPuQNInKS\nt1BVd6jq91W1CvgnnP/MYd/Q7gTOEac/xnHA/b7jNKjq53CaDEqB/5NG2TzbcW4ofhOBN5PtqKoX\nqep+7uNnIZvdAmwCPu6+h1eR2nv4d2BhzO95pKreg/PNckJAmRMJ2n67iIwA7sV578ap6gHA4ymW\n0fNrYDXwiIiM9Ba638K/gtPk9DBwVxrHNPnP7mF2D0vE7mGDyAK17BiNcwNpw+k3UJ/ifs8CnSJy\nuYhUuN9qp4iI1+H2HpyOoAeIk9vmeykc84e+7S/B+QbolXE30C4ihwH/kWIZe6nqKpwb+oMiMg1A\nRGaJyMdERHD6VkSAnpD9/wfYgVPd/qiq7nSP8SkR+bw4HX873EfgMZJ4GKfp4RvidIw9D+cPziP9\nOFaQ0TjXuFucjtb/muJ+vwG+KyKfcTu17ue+b6Nw+pyUiMj33DKfi/MHIJHxvu1nAx8DHsPpK1KO\n0xcjIiJn4vTpSYfiDOl/HVjhfi5HiMh5IrK/21Szk/79fkz+snuY3cMSsXvYILJALTtux/kmtB3Y\nDPwplZ1UtRvnW+wJOJ1U38P5xrO/u8nVON9WmoGVwB0pHPYhnM6964AHcJoHvGOdgPOfdAVwXypl\nDCjzY8B3gIdFpBo4CvgDsAunc+8vVfXpBIe4E6dD6O98y4YDP8O5/rdwOhLX9aNs7+J8Y/4Rzh+c\n7wNnquoH6R4rxOXABTj/yW+h7w9IsnI9B8wFFuN0mn0VmOOu24dTJf8dd91ZwO+THPJPOJ2X38fp\nS/R1dfr0fIhzzQ+4687GufGnxW2S+DbwjnuscpzrbnGbS77tld8UDbuH2T0sUbnsHjaIvNEqxhhj\njDEmz1iNmjHGGGNMnrJAzRhjjDEmT1mgZowxxhiTpyxQM8YYY4zJU0UzKfuBBx6oVVVVuS5Gxu3e\nvZtRo5IlAy9Mdm2FKZ+u7YUXXnhPVT+a63Jkgt3DCo9dW2HKl2tL9f5VNIFaVVUVa9euzXUxMq6p\nqYkZM2bkuhhZYddWmPLp2kQklcz2BcHuYYXHrq0w5cu1pXr/sqZPY4wxxpg8ZYGaMcYYY0yeskDN\nGGOMMSZPFU0fNWOMMcb0X1dXF9u2bWPv3r1UVlby8ssv57pIWTHY11ZRUcGECRMoKyvr1/4WqBlj\njDGGbdu2MXr0aKqqqti1axejR4/OdZGyYufOnYN2bapKW1sb27Zt4/DDD+/XMazp0xhjjDHs3buX\nsWPHIiK5LkrREBHGjh3L3r17+30MC9RMUWjc2EjVDVWULCyh6oYqGjc25rpIxpg8Z/eNeBakZd5A\n31Nr+jQFr3FjI7UP1bKnaw8ALe0t1D5UC0DNlJpcFs0Yk6fsvmEKhdWomYJXt6qu92br2dO1h7pV\ndTkqkTEm39l9Iz+VlpZSXV3d+2hubg7ddvv27Zx99tmAk8T2zDPPTOtcM2bMKIgk01ajZgre1vat\naS03xhi7b2RIayvMng133w0HHzzgw40YMYL169entO0hhxzCvffeO+Bz5jurUTMFb2LlxLSWG2OM\n3TcyZNEieOYZ52eWNDc3c8opp3Dcccdx3HHH8ac//al3+THHHBO3/e7du7nwwgs54YQTOPbYY3nw\nwQcB6OjoYPbs2UybNo2zzjqLjo6OrJU5kyxQMwWvfmY9I8tGRi0bWTaS+pn1OSqRMSbf2X0jA1pb\n4fbboafH+fnWWwM+ZEdHR2+z51lnnQXAQQcdxBNPPMGLL77I3XffzSWXXJLwGPX19Zx22mn8+c9/\nZvXq1fzgBz9g9+7dLF68mJEjR7J27VoWLlzICy+8MODyDgZr+jQFz+v4W7eqjq3tW5lYOZH6mfXW\nIdgYE8ruGxmwaJETpAFEIs7rm24a0CGDmj67urr43ve+x/r16yktLeXVV19NeIzHH3+cFStWcN11\n1wFO2pGtW7eyZs2a3iBv6tSpTJ06dUBlHSwWqJmiUDOlxm6wxpi02H1jALzatM5O53Vnp/P6yisz\n0lfN7/rrr2fcuHG89NJL9PT0UFFRkXB7VeW+++7jqKOOymg5csWaPk1GWV4iY4wZAvy1aR6vVi3D\n2tvbGT9+PCUlJSxfvpxIJJJw+zPOOIMbb7wRVQVg3bp1AEyfPp3f/e53AGzatIkNGzZkvKzZYIGa\nyRgvL1FLewuK9uYlGgrBWmyA+uTbT+a6SMYYkz3PPttXm+bp7AS3o38mzZs3j2XLlvHpT3+av/zl\nL4waNSrh9ldeeSVdXV1MnTqVyZMnc+WVVwIwd+5cdu3axbRp07jqqqs4/vjjM17WbLCmT5MxifIS\nFXPzQlDizOt2XsenNn6qqK/bGDOEubVUmbZr1664ZUceeWRU7ddPf/pTAKqqqti0aRPg5ESbMWMG\n4PRzu+WWW+KOM2LECO66665BneszEyxQMxnT0t4Surzqhipa2lsolVIiGmFS5STmjJ/DDGYMbiGz\nIChA3dezrzdxpnVWNsYY01/W9Jll/e6z1doKp55K+fvvZ7eACc6d7lDrUikNXecFcRGN9L6+9i/X\nFkWzaFiCTK/pdyg2BRtjjMkMC9SyKGGfrWTBkJtEcNIdd2S3kEHl6GcCQy8IS3l7Isy5f05oAJtu\nkNu4sZEDf3YgslCQhcKBPzsw4T6ZGvgQliCzVEr7NUWNDcgwxhjjsUAtFf5gJo3apoRzySUKhnxJ\nBA9+7LGMJBGMO753DbHlSDOBoT+oSFSjlkhQTVNQkDvn/jnIQmHYT4Yx75F5cYHZnPvn0NbR1nuM\nto42LnzwQuY9Mi9qu9KflCILhfPvPz/u+KP/z+jAAClR8BSUOBPCA9ewGjjveubcP8dq4YwxxgAW\nqEULC8L8wUwatU0J55JLFAz5hj1LCsOdU6mBaVxzE1XzK5xtFn+Cxg/WwPz5veVofO43VP3iMEpu\nOYSquXtpnAJEIjT+7PzQWqrGjY1c+OCFvUFFujVqfnu69vQGYl7QFRvkeiIaYfHaxXGBWZDOSCeL\n1y6O2q5HnfdW0bjtd3Xu6g2Qzr//fOY9Mo/T7zg9Lng6//7zkYVC1Q1V/HHrH4n0pH7tEysnxv3O\n5j0yj9qHagOvpz8TRVutnDHGFAfx8ozkGxH5IvBLoBS4VVWvTbT9tGnTdO3atakdPGwS2Xnz4JZb\n4OKL+7Irt7bCEUfA3r1QUQGqsG8fjBgBr78en9jPd+yqu04K7GA/aUcJzTeWQlcXiMDYsfDxj8MD\nDzjH987nCTqXe57G//wGtWv+gz3dfXOWiYIKTKqc1DsdSu2932JPSXfvNiM7YclDUPPyMOb9r24W\nnwBI3+HLu+HbL8Atn4GegHB+7IixSYMkE65ESnoDxlSNHTGW9zveZ2LlRL505Jd49K+PsrV9K2NG\njIGeCO/v/ZCJoyfwpU/OYtlLy6IC3ZFlI1kyawkQPbjBf5xUBzs0NTX1jq5q3Ng4sMES/v+LqmlP\n7iwiL6jqtNRPmL/SuocVEP/npdgU27W9/PLLfOpTnwIouJGR6cjFtfnfW0+q96+8rFETkVLgJuAf\ngaOBfxaRozN2gqDmvs9+Fm67Lb6Wy5/Ur7PTCa4gPLGf79iBc8l1Qv0TPX3HUYX33oPnnuursYtN\nIrh3LyxYEF3jN38+rFlD3X//MCpIAydIA7dJccV3uPTOb0YFaQB7yqFuJjR+Kj5IA+gcBotPCA7S\nAAvSBijdIA2c99yr0Vu8dnFvDV9bRxtt+z5EBVp2bWPx2sWBTe6Xrrw0rjnZf5x0m1kzkjevn7XV\n+UJEDhOR1SKyRUQ2i8il7vJrRORNEVnvPr6U67IaUwhEhMsvv7z39XXXXcc111yTkWO/++67nHji\nifzDP/wDTz/9dOh2F110EVu2bAGcFCDvvfdeyuf47W9/y/e+970Bl9UvLwM14ATgb6r6uqp2AncB\nX83IkYP6YC1a5ARKsUFY7BQZPT3RQZu3vxdAPfkk/PrXvceu6TmGJesPY9KI8YjCpA/dWqyNIWW7\n+ebo83lU4aGH+v6QzZ8Pjc4fw63Ddie83D3dHbSVBwcFWyudYC02SDPFqa2jLbQ52ZNOM2vCPpip\n8P9fvO22jE/uPEi6gctV9WjgJOC7vi+V16tqtft4NHdFNCY7stHFYvjw4dx///1pBUepWrVqFVOm\nTOGZZ57hlFNOCd3u1ltv5eijM1c3NFD5GqgdCvzd93qbu2zgYieRnT/f+SMB8UHYggXxtVt+Xk2X\nF0Cde64TVHnrTjqJmntfpfm2/elZCM03JAjS/McEKC2FESNQcaOo99+HxYud8ixf7pQdmNie/lvg\nmdjuBGvG+IX1rUx1u1T3j6ut9r6gZGkammxQ1VZVfdF9vhN4mUzdq4zJY9maiWbYsGHU1tZy/fXX\nx61rbm7mtNNOY+rUqcycOZOtW517zbe+9S0uueQSTj75ZI444gjuvffeuH3Xr1/PD3/4Qx588EE+\n97nP0dHRwdy5c5k2bRqTJ0/m6quv7t12xowZBHVDaGho4IQTTqC6upp//dd/7Z3K6vbbb+cTn/gE\nJ5xwAn/84x8HdP1BCjrhrYjUArUA48aNo6mpKeH25W1tnLh0KaW+SWR7li9HVOMqlXq6uuh+4AHK\nY2u3/FTpvPdeSjs7Ke3pQT/4oO84qujevQigr7ySdqWVRiLQ0dek6fUlFEB7enqPV78Kamc5TZlh\nxu6BjrLobUZ2OvvWzYSWA9IsnCk4w0uGM1yGsyOyI+m2Bw0/KOH/pV27dtHU1MRBww/i7X1vp70/\nBPxf9H8h6uwksnQpz8+cSeeYMUnLmy9EpAo4Fnge+BzwbyLyTWAtTq3bBwH7pHUPK0Te56UYFdu1\nVVZWsnPnTgAikUjv8yALnlgQWKO+4IkFfKXqKwMqxze/+U1OPvlk5s6dy759+9i3bx87d+5k7ty5\nnHvuudTU1LB8+XLmzZvHnXfeSVdXF3//+99ZuXIlr776Kt/4xjc444wzoo75sY99jCuuuIIXX3yR\nn/3sZ3R3dzN//nzGjBlDJBJh1qxZfPGLX+SYY44hEomwe/dudu7ciaqya9cumpubaWxs5LHHHqOs\nrIzvf//73HrrrZx22mlcddVVrFmzhv33358vf/nLTJ06Ne6927t3b78/K/kaqL0JHOZ7PcFdFkVV\nlwBLwOmIm7RT57x5cYtKQmrMSrq7KT/sMHjtNaeWy9+h3zfAoHzXLhjmvI2xwZjE/ExH2LFin3s1\ndHUzoaXSDeR8G4zshF8+1rfN1kqnJq1+Vd++F37V6ZPmVxKB8h7YW9aPwpu8UiqlLP2npQBRU10F\nGVk2kl98+RfMmDIjdBuvA/Uvxv4i7nip7A8E/l+MKrMqJ69a1TeoJ8+JyH7AfcBlqrpDRBYDiwB1\nf/4CuDB2v7TvYQWo2Drc+xXbtb388su9neyTdbjftnNb6PKBdtQ/9NBDueCCC7j99tsZMWIEXV1d\njB49mv/5n/9hxYoVlJWV8Z3vfIerrrqK0aNHU1ZWxtlnn01lZSWf+cxnePfddwPLUFFRQXl5OaWl\npYwePZrGxkaWLFlCd3c3ra2ttLS08NnPfpbS0lJGjRrF6NGjERH2228/Hn74YV566SVOO+00ADo6\nOpgwYQKbN2/m85//PIcffjgA5513Hq+++mrc+SsqKjj22GP79X7ka9Pn/wBHisjhIlIOzAZWDPio\nQZPIxiovd/6IqML06dHNpF5zTGyH/+7u+OMMopqNTrOqLoTl9zt94WL7xHnbxDbB1myE2x6Esbtx\n/qSo8/yO38OtK2BY/zNuFB/3/cnWsSVBK3spKeSoCyjfyLKRLDtrGTVTaqiZUsOSWUuYVDkJQZhU\nOYm50+ZGvV4ya0nKozaDjpfy/sn+L2ZpcudsEJEynCCtUVXvB1DVt1U1oqo9wG9w+t0aUzTCEn2H\nLU/XZZddxtKlS9m9O3E/bM/w4cN7n3stUHV1dVRXV1NdXR23/RtvvMF1113HqlWr2LBhA1/+8pfZ\n68+2EENVueCCC1i/fj3r16/nlVdeydggh2TyMlBT1W7ge8B/4/T5uEdVNw/4wOvWOQGYKmzf7qTG\niNXZCU891TcK1NdMyu23w0svBXf4zxNhAVmyfd77uRPo6ULnuRfc/fb3TsCHQmkk+qekErRkM/uL\nxjwSndd9vV/5foj7L+Xj46TGaPh6Aw1fb2C/8v361vfA8K6+bb3jjhs+joavNTB32tyULkWAnmvL\n0Xfm0fC1hqjgp+FrDXRf3U3D1xoYO2Js7z6jykYxdsTYvu3c8iUKnGqm1NB8WTM9V/fQfFkzN3/5\n5qjX6c5DGnu8lPf3/18Me2Rp0udMEhEBlgIvq+r/9S0f79vsLGDTYJfNmGwKzGpQNrI3JdRAjRkz\nhnPPPZelS5f2Ljv55JO56667AGhsbEw4IACgvr6+N7CKtWPHDkaNGkVlZSVvv/02K1euTHismTNn\ncu+99/LOO+8A8P7779PS0sKJJ57IU089RVtbG11dXfzXf/1XupeaVL42feKOksreSKn58+OXlZfD\nRRc5fyQWL4aSmDg2EoGamsQDDIqMF7AFaZzS15w6Zg98UAE9voqfsm4YHoFdw4P3HxCFuX+GR49y\nz68VEOnh/dJOxkTK+VA6ifjKUh6B275wEzWnOE1uXkfYqGZAX3A3do/TZFxTWh0XMNRMqXFqXZcu\njQ7Yvc/PTTc5TSJTZlAzpYabv3xz7ybe5PSxJrbT+2Wg5sorqbksPuDxasWSsUnfB9XngPOBjSLi\n/TW4AielUDXOp6oZ+NfcFM+Y7PDuMwPKo5jE5Zdfzq9+9ave1zfeeCP/8i//ws9//nM++tGPcvvt\nt/f72J/+9Kc59thj+eQnP8lhhx3G5z73uYTbH3300fznf/4nX/jCF+jp6aGsrIybbrqJk046iWuu\nuYbPfvazHHDAAYG1dwOVtwlv05V2wtvDDusdORnFn9Q2SEVFdDJa44xQ/cd/pLHl4bh+cJBksINC\naQ9RQZV/XS9fBZgonPYaPDsxfoDEkofCB0hMiuxH80/6Ong2bmyk7vEfsXXnm9H99sKSGfsdeywE\nfEuj2gnswvquBAWIvcmHNxIV7OWrfOqXYwlv818+fV4yrdiuzRLeZk/RJbzNuvnzg4M0iE5q6++v\n5j06OuATnxi8shaCSAQefji62fXGUmoeb6Vmg7JkdkPoPKCT2mHZ751gxW9kJzTc7zTFNvj63Y3t\nGc6YkWNZ9fH44M9L4huWcmRrya7e570Z9Xe+ycQd0YMrUkoPEdZ0l6S5LqpfV1BuvQLqm2WMMSb7\nhmag9sgj4evCktp6Wlvh1VezW75MKSkJ7ocXo3EKVF0GJVc7PxunZODckQhceimceio1H53Jsg9n\nxAVj5d2wqwzO/xqM6HIGMQQFL14AuPx+6IjsSzgrglebF2TiAZOc6/Xn/xFntGztLN91ZzlY6u3X\ndY3SfL1Ss6Hw+mYZY4wZHEMvUGtthdhRJCNGOMsnT47fPrZ2pUAScQJOwJmkabtxihOktBzgpPVo\nOSAmaPFLN6fVgw/2zqRQs/iPLHnIVzO222nZbBvlnLdtlJPrbfn94YMg6mbCniTpQrwmzLgaOl8n\n18CM+uVQd+EkC5aMMUNasXSHyicDfU+HXqAWNJemN0OBO7dXFH/tijflTRGpmxnShPil4c71bt/u\n9MsDaG+PH2CRSGen8143NEAkEtU0ul8XdMUMZfGaLntVVESdP9ksCl4S35qNTo3cpB0lgaMfB5xR\n3xhjilBFRQVtbW0WrGWQqtLW1kaF93e0H/J21GfWBOVv6uyEhx+GsjLneViH7qAgr7wcxo51aps2\np5hBpKwM9t8f2nI/sXlof66Kfc71qkbnkvMbPtzpzxc0Cvaoo+CNN5z3MxKJ27cl7LyVOMHgxRc7\n7/+8eb3Hn9geMouCOn3d/P3MajZCTenUwJqxiZUTg0deZij/jzHGFKIJEyawbds23n33Xfbu3Tug\n4CKfDfa1VVRUMGHChH7vP/QCtaAmLW+mgdicaVdeGT3yLyzIa22Fs86CTW6qpLARgZ6uLmfU6Xvv\nOYHIrbf2DWAYBP60GiUhIy4ntuPkkVMNzxkXNjIW4JVXol+LOO/J1Kk0bmxE7j8fDUiyNnEHfRNz\nX3ll1HseNF1W1IhJT3V8Sg2/+pn1gRn1M5X/xxhjClFZWVlvhv2mpqZ+Z9LPd4V2bUOv6TNIoubQ\nU0/tG0wQO9LP3yzoH3TgbReWT8UfSKxZEx6kpTAQIF2xfdIipcRns3ebEKNGwA6UKpx3HuD0EQsK\n0kShfrUbNXp9A33vec0/zGXJo6V9My9E9mPJ7Ia0O+MPKKO+McYYM4gsUIPwmrIVK5xAasECZ1lr\na3Tg5g/wglI6BAV206eDPwPy9Onh5cpCP4GgPmmIM9uAuE2IvTVU/hGwmbBlC7z1VmhfMAVq1rtN\npLEjbt3+gTXrI30pQK6LUPPRmYHHSqbfGfWNMcaYQWSBGgTnxNq+HXbscNYvX+4EDIsWOaMYFy3q\nG1gQ21zqT+URy78/RA9OKA1ofxwxgj/dd59Tnrlznb5bQSNTw4jEHTesT1pPCfQsKqH5lyXRzYhe\nLrlMZFsuK4NFi0L7gk3aEbMg0fyqseuNMcaYImSBWhh/UlwvJ9jtt/f1n1qwIL3AwQvKvP29wC+s\noz5AdzeT7rjD2fe225xtUx2wAE6AF3Pc0Bxj7QTXoHmjXsOC2aAAs6wseLkbzNYf/8P4OeK6hfon\nA7b3RtyG1XpaclhjjDFFzAK1IK2t0NgYveyee6KDqocfTi9wiA3K5s9PPrl7Vxf7b97s7JtuX7Gj\njgoMlgJzjHX2TffUy8stl6jP16JFwQFmV1f4zA+RCDV3bWbJrCWMGz6ur4/Yucvj+5r5z93PmQCM\nMcaYQjYJKHVfAAAgAElEQVT0Rn2mImyKKX8z5549TiCTaD5IT1AzaUNDcK2TX3U1G3/8Y07uz0Tw\nsaMuXV6zZuycnHEJZr3awbA5J1tb4Y47gtclmg/VDWZrbrqJQ9sOLap58owxxphMsxq1IImmmPKk\n0z8qrH9Votq0igpYudJp+szEyMvhw3ufRs3JeQPU9Ex2mjF92yTtc7dokTPvaexcqN58qEG1X1YL\nZowxxqTFArUghx2WfJt0+kcF9a8CJ1FueewQTN/xFy2icsOGzIy8TJTz7NRTg5tXw4LRoP52xhhj\njMk4C9SChPWH6m/NkHc8Lz2HNzXT7t3htWo9PfDUU7RPnRofzJWXxzeb+vuUpTtC8/bbYdWq8IEE\nsZKlJTHGGGNMRligNpj86TmCmkP9Skrg1FPZf8uW4EELsX3o/AGTFxjOndsX5JWUhM/TGYk4IzW9\nbb2UHEHBaH/SkhhjjDGmXyxQGyyxzYVr1iTuo9bTA8uWsfGnP42vyQuqMYut/YoNqBIlr+3sdNJ+\npBJ8FWE+s8aNjVTdUEXJwhKqbqiicWNj8p2MMcaYQWCB2mCJbS489dTEzapz50JHhzOYIJa/xqyk\nJLj2K2wC+XnzomvawoQFX0WWz6xxYyO1D9XS0t6CorS0t1D7UK0Fa8YYY/KCBWqDId3mQl/t28GP\nPRa8XViHfm+aq6AaOy+gChvcELRtrCLLZ1a3qi5qcnaAPV17qFtVl6MSGWOMMX0sUBsM6TYX+raX\nsO3COvR7/eDCauzWrcvMYInYeU8LVNi8o2HLjTHGmMFkgdpgSKe5MKb2raS7O772LayG7qWXBi9t\nRuy8pQUqbN7RsOXGGGPMYLJAbTCk01yYSu1b2Db+GQy8fbJR81VEedTqZ9bHzztaNpL6mfU5KpEx\nxhjTxwK1fJNK7VvYNv5UHl4t24IFTs3X/PmZC9iKKI9azZQalsxawqTKSX3zjs5aQs2UmlwXzRhj\njLFALe/E1L41rV4dX/sWVEM3d66TC82vu9uZU7Snx/n59NMDD6qKMI9azZQami9rpufqHpova7Yg\nzRhjTN6wQK1YBNWydXX1JcaNRJyAbqBBVRHmUTPGGGPylQVqxSK2li12knVPd/fAgqoiy6NmjDHG\n5DML1IpV0CTr4CwbSK1akeVRM8YYY/KZBWrFas2a8CmjrKnSGGOMKQgWqBWr6dPDp4mypkpjjDGm\nIOQsUBORc0Rks4j0iMi0mHULRORvIvKKiJyRqzIWtLBpoqqrranSmAwRkcNEZLWIbHHvZ5e6y8eI\nyBMi8lf350dyXVZjTGHKZY3aJuBrwBr/QhE5GpgNTAa+CNwsIqWDX7w8lE7yWutLZsxg6AYuV9Wj\ngZOA77r3sPnAKlU9EljlvjbGmLTlLFBT1ZdV9ZWAVV8F7lLVfar6BvA34ITBLV2eKpJpm4wpFqra\nqqovus93Ai8Dh+Lcx5a5my0D/ik3JTTGFLphuS5AgEOB53yvt7nL4ohILVALMG7cOJqamrJeuMFQ\n3tbG0T/5CVuuvppd5eU0NTVR3tbGiUuXUtrTQ2TpUp6fOZPOMWNyXdQB2bVrV9H8zmLZtQ09IlIF\nHAs8D4xT1VZ31VvAuJB9ivIe5lfMnxe7tsJUaNeW1UBNRJ4EDg5YVaeqDw70+Kq6BFgCMG3aNJ0x\nY8ZAD5kf5s2DTZs4edUqms45hxkzZjjLXKWqnLxqFdx0U+7KmAFNTU0Uze8shl3b0CIi+wH3AZep\n6g4R6V2nqioiGrRf0d7DfIr582LXVpgK7dqy2vSpqqer6jEBj0RB2pvAYb7XE9xlQ0PMhOfl779f\nlNM2GVMsRKQMJ0hrVNX73cVvi8h4d/144J1clc8YU9jyMT3HCmC2iAwXkcOBI4E/57hMgydmwvNJ\nd9xh0zYZk6fEqTpbCrysqv/Xt2oFcIH7/AJgwC0IxpihKWd91ETkLOBG4KPAIyKyXlXPUNXNInIP\nsAVnRNV3VTWSq3IOqoCas4Mfeww+/nGbtsmY/PQ54Hxgo4isd5ddAVwL3CMi3wZagHNzVD5jTIHL\nWaCmqg8AD4SsqwfqB7dEeSCg5kwiESclx6ZNOSqUMSaMqj4DSMjqmYNZFmNMccrHps+hKyBJbUl3\nt9WcGWOMMUOUBWr5JCBJbdPq1Zak1hhjjBmiLFAzxhhjjMlTFqgZY4wxxuQpC9SMMcYYY/KUBWrG\nGGOMMXnKArVC1NrqpOywmQmMMcaYomaBWiFatAieecZmJjDGGGOKnAVqhSZmLlCrVTPGGGOKlwVq\nhSZmLlCrVTPGGGOKlwVqhSRgLlCrVTPGGGOKlwVqhSRgLlCrVTPGGGOKlwVqhSRgLlA6O20uUGOM\nMaZIDct1AUwabM5PY4wxZkixGjVjjDHGmDxlgZoxxhhjTJ6yQM0YY4wxJk9ZoGaMMcYYk6csUDPG\nGGOMyVMWqBljjDHG5CkL1Iwxxhhj8pQFasYYY4wxecoCNWOMMcaYPGWBmjHGGGNMnrJAzRhjQojI\n13NdBmPM0GaBmjHGhLs+1wUwxgxtFqgZY0w4yXUBjDFDmwVqxhgTTnNdAGPM0DasPzuJyMeA84DZ\nqjo5s0UyxpjBIyIbCQ7IBBg3yMUxxpgoKQdqInII8A2cAG0K8H+A2VkqlzHGDJYzc10AY4wJk7Tp\nU0RqRWQ10ASMBb4NtKrqQlXd2N8Ti8jPReQvIrJBRB4QkQN86xaIyN9E5BUROaO/5zDGmBT8RlVb\nwh6JdhSR20TkHRHZ5Ft2jYi8KSLr3ceXsn8JxphilUoftV+5252nqj9W1Q1kpt/GE8AxqjoVeBVY\nACAiR+PU1E0GvgjcLCKlGTifMcYE+egA9v0tzn0q1vWqWu0+Hh3A8Y0xQ1wqTZ/jgXOAX4jIwcA9\nQNlAT6yqj/tePgec7T7/KnCXqu4D3hCRvwEnAM8O9JzGGBOgUkS+FrZSVe9PsG6NiFRlo1DGGAMp\nBGqq2gb8Gvi1iEzA6af2toi8DDygqldkoBwXAne7zw/FCdw829xlcUSkFqgFGDduHE1NTRkoSn7Z\ntWtXUV4X2LUVqiK8tkqcfmpBqTgUCA3UEvg3EfkmsBa4XFU/CNrI7mGFza6tMBXctalqwgdwUsjy\nTwBXJdn3SWBTwOOrvm3qgAcAcV//CpjjW78UODtZOY8//ngtRqtXr851EbLGrq0w5dO1AWs1yb0h\n2QN4cYD7VwGbfK/HAaU4XUbqgdtSOY7dwwqPXVthypdrS/X+lUrT583AcQEB3qvAT5IEgacnWi8i\n38L5JjvTLTTAm8Bhvs0muMuMMSYbMprUVlXf7j2wyG+AhzN5fGPM0JKzhLci8kXgh8BXVHWPb9UK\nYLaIDBeRw4EjgT/noozGmCHh/FQ2EpGU+smKyHjfy7NwWhGMMaZfUqlRO0JEVoStVNWv9PPcvwKG\nA0+ICMBzqnqxqm4WkXuALUA38F1VjfTzHMYYk5CqphpIVcQuEJE7gRnAgSKyDbgamCEi1Tj925qB\nf81MSY0xQ1Eqgdq7wC8yfWJV/XiCdfU4fTuMMSZfxKUlUtV/Dthu6SCUxRgzRKQSqO1U1aeyXhJj\njDHGGBMllT5qzakcSET+18CKYowxeS2jgw6MMSYVSQM1VQ1NBBnjpwMsizHG5JSIjBORM93HQTGr\nUxp0YIwxmZTJUZ/2bdMYU7BE5FycEebnAOcCz4uIN2NKOoMOjDEmY1Lpo5aqTMz/aYwxuVIHfEZV\n3wEQkY/iJO2+N6elMsYMaTnLo2aMMXmmxAvSXG3YPdIYk2OZrFFrzuCxjDFmsD0mIv8N3Om+/gaw\nMoflMcaY1L8tikiZiFwiIve6j38TkTJvfRqDDowxJu+o6g+AW4Cp7mOJqv4wt6XKU62tcOqp8NZb\nuS6JMUUvnWr9xcDxOHN/evN/Ls5GoYwxZrCJyE9V9X5V/Xf38YCI2Gj2IIsWwTPPOD+LhQWfJk+l\nE6h9RlUvUNU/uI9/AT6TrYIZY8wgC8oF+Y+DXop819oKt98OPT3Oz2IJbIox+DRFIZ1ALSIiH/Ne\niMgRgM3BaYwpaCIyV0Q2AkeJyAbf4w1gQ67Ll3cWLXKCNIBIpDgCm2INPk1RSCdQ+wGwWkSaROQp\n4A/Af2SnWMYYM2h+B8wCVrg/vcfxqjrH20hEPpKb4uURL6Dp7HRed3YWR2BTjMGnKRrpBGrPAEcC\nlwD/BhwF/DEbhTLGmMGiqu2q2qyq/6yqLb7H+zGbrspJAfOJP6DxFHpgU6zBpyka6QRqz6rqPlXd\n4D72Ac9mq2DGGJNnbPaVZ5/tC2g8nZ3wpz/lpjyZUIzBpykqSfOoicjBwKHACBE5lr6b1f7AyCyW\nzRhj8onNvrJuXa5LkHnFGHyaopJKwtszgG8BE4Bf0Beo7QCuyE6xjDHGmEFQjMGnKSpJAzVVXQYs\nE5Gvq+p9YduJyAXutsYYU4ys6dMYM+hS7qOWKEhzXTrAshhjTF4Rka2+lzNzVhCTeZbg1hSITE44\nbN82jTHFpve+FjAK1BQyS3BrCkQmAzXraGuMKTZ2XytGluDWFJBUBhOkymrUjDEFR0T+PWwVsN9g\nlsUMkqAEtzfdlNsyGRMikzVqlvzWGFOIRoc89gN+mcNymWywBLemwKSSRy3s2yYAqvp/3Z/fy1Sh\njDFmsKjqQgAROVBV38t1eUyWJUpwa7VqJg+lUqMW9m3TexhjTMESkTNF5F1gg4hsE5GTc10mEyBT\nozQtwa0pMKnkUVs4GAUxxpgc+d/AKar6FxE5EfgZcGqOy2RaW2H2bLj7bjj44L5RmvPnwxtv9C1P\nlyW4NQUmlabPqxKsVlW1sc3GmELWrap/AVDV50XEWgrygT99xo9/3DdKs6HB+WlNlWaISGXU5+6A\nZaOAbwNjAQvUjDGF7KCYvrhRr71+uGYQxabP2L07epQmOMuvvLJ/tWrGFJCkfdRU9RfeA1gCjAD+\nBbgLOCLL5TPGmGz7DdH9bmNfF6ZCzrwfmz6joSG+X5k3AMCYIpdSHjURGQP8O1ADLAOOU9UPslkw\nY4wZDEXbD9ffdFhITYRB6TOCeGk1rFbNFLlU+qj9HPgaTm3aFFXdlYkTi8gi4KtAD/AO8C1V3e6u\nW4DTtBoBLlHV/87EOY0xJtZA+uGKyG3AmcA7qnqMu2wMcDdQBTQD5w76F9vYpsNCCmaC0meEsbQa\nZghIJT3H5cAhwI+B7SKyw33sFJEdAzj3z1V1qqpWAw8DVwGIyNHAbGAy8EXgZhEpHcB5jDEmkd0B\nD3C+LP4oyb6/xblP+c0HVqnqkcAq9/XgCsq8XyiC0mcAVFTEL7O0GmYISKWPWomqjlDV0aq6v+8x\nWlX37++JVdUf5I2ib069rwJ3qeo+VX0D+BtwQn/PY4wxiQykH66qrgFiJ2v/Kk4XEdyf/5TZEidR\n6Jn3160D1fhHR0fw8hym23jy7SepuqGKkoUlVN1QRePGxpyVxRSvTM71mTYRqQe+CbQDn3cXHwo8\n59tsm7ssaP9aoBZg3LhxNDU1Za2subJr166ivC6waytUxXhtGe6HO05VW93nbwHjEpw34/ewI6+/\nnvHd3VHfwnu6umi9+GL+etllAz5+uorx8wJOkHbdK9exT/cB0NLewrd//21e3vIyp487PcelG7hi\n/b1B4V2bqGryrfp7cJEngaCOEXWq+qBvuwVAhapeLSK/Ap5T1QZ33VJgparem+hc06ZN07Vr12aw\n9PmhqamJGTNm5LoYWWHXVpjy6dpE5AVVnTbAY/j74d6Ubj9cEakCHvb1UftQVQ/wrf9AVT+S7DgZ\nu4cdeyysXx+/vLo6J7VP+fR5yaSqG6poaW+JWz6pchLNlzUPfoEyrFh/b5A/15bq/SurNWqqmurX\nikbgUeBq4E3gMN+6Ce4yY4zJhsuBfTj9cOtExFsuOIMJ0u3i8baIjFfVVhEZjzNYavBY5v1BsbV9\na1rLjemvVAYTZIWIHOl7+VXgL+7zFcBsERkuIocDRwJ/HuzyGWOGhiz0w10BXOA+vwB4MMG2Q1sB\n53qbWDkxreXG9FfOAjXgWhHZJCIbgC8AlwKo6mbgHmAL8BjwXVWN5K6YxhgTTETuBJ4FjnIndP82\ncC3wv0Tkr8Dp7msTFJT5c70VmPqZ9QwvGR61bGTZSOpn1ueoRKZY5Wwwgap+PcG6esA+7caYvKaq\n/xyyauagFqQQxCbgLeRcb0DNlBpe3vIyDa0NbG3fysTKidTPrKdmSk2ui2aKTC5r1IwxxgwFsUHZ\nW28Vdq431+njTqf5smZ6ru6h+bJmC9JMVligZowxJrtig7L58ws711sONW5stNxtQ4wFasYYY7Km\nvK0tPihraHACNr8CrVUbTI0bG6l9qJaW9hYUpaW9hdqHai1YK3IWqBljjMmaSXfcET93ZyQCXV3R\ny2w6qKTqVtWxp2tP1LI9XXuoW1WXoxKZwWCBmjHGmMyJGd25/5YtwXN3VlfHTwf16KMFm65jMFju\ntqHJAjVjjDGZE5Ny44Xf/Cb1OTr9+xZwjrVssdxtQ5MFasYYYzIjaHRnf/ddsKBgc6xlS/3MekaW\njYxaZrnbip8FasYYY5JLpYZrICk3YvdtaEgv4BsCNXA1U2pYMmsJkyonIQiTKiexZNYSSwtS5CxQ\nM8aYYpKtgCVoFgH/ubwasZiUG+Xvv59amWP39UaFphrwFfAsB+momVJjuduGGAvUjDGmmGQjYAlr\n0vSfy18j5olEnFGfqZQ5dl9PKjnWBtLkakyes0DNGGOKRbYClqAmzdhzrVkTP7qzs5Nx//3ffTVu\nYTV9zz4bPDLUk6xWLZ0m1yHQRGqKiwVqxhhTLLIxLVNIkyYLFkSf69RTndGc27dDRYWzvLSU0n37\n+mrcwmr61q3rGw1aXR2/vrMTnnoqvfKFBWJDpInUFA8L1IwxphikG7CkKqhZsrvb6ewfdK6YYFFU\n4bbbUq/p8wdtqjB3LpSUOIFgquULC1KtidQUIAvUjDGmGKQTsKQjqFmyqyt4CqjYOTw9nZ19y9Ip\nUyqBVVD5wmY5KIKJ4M3QY4GaMcYUg3QClnTE1nAlap5sbAweFNDT07c8nZq+VAKr2PJt3w7Tp8PK\nldHbZavG0Zgss0DNGGOKQVBAFTYDQDbONXeu0ySaaFCAJ5XarP4GVmF90LJV42hMllmgZowxJl46\noyO9oApgxAiYPDnx9qnU9PUnsErUVJqtGkdjsswCNWOMMfHSGR0Z20TpjQBV5c2vfAXKy5115eUw\nfrwTUCWr6etPYJWoqXQwaxxjWUoQMwAWqBljjImWrBN/shkJFi+GDRugtZWDH3ssel1rq5PaI5l0\nA6t87oNmKUHMAFigZowxJlqyTvzJZiRQhfPOg0WLkKDBBcuX9z+ACqudytc+aJYSxAyQBWrGGGP6\nJKuZSmVGAoAtW2DNGkq6u+PXDSSACqudytc+aCmMXG3c2EjVDVWULCyh6oYqGjc2DnIhTT6zQM0Y\nY0yfZDVTYf3Rtm93+p95/dHKymDaND6cOhXWr++brcCTTu2SV4v20kvhtVNeU6mXnqO1dfD6oCUq\nd5Lm2MaNjdQ+VEtLewuK0tLeQu1DtRasmV4WqBljjHG0tsIdd4TXTCUKPObPd9b71y1bRuWGDVBT\nM7BmSa8WzX+csP3T6Q+W7U7+KTTH1q2qY0/XnqhN9nTtoW5VXXbKZAqOBWrGGGMcixZBRwfMmxfc\niT8s8Jg/35lSKoCA0wza32ZJf1Pr5s3RgeCvf+0MWgjadiA51zIhWdDr2tq+NXD3sOVm6LFAzRhj\nzMCma1qxInhGAs+wYfHB3/btsP/+qQVTYcfu6XEGLQRtO5Cca5mQLOh1TaycGLh72HIz9FigZowx\nJnGQ4zURrlwZPxuBCLS3Jz52V1f8gITjj4enn04eTN12W+LZDrZscfqunXRSeuk5sjnvZxpBYP3M\nekaWjYxaNrJsJPUz6zNXHlPQLFAzxpihLlHfs7CgyttHNXFtmqe7u29/rz+bavJgqqsr8XHLypy+\na88/Hx/QhQWc3qCELOVca/z5+VTN3UvJ1VB1cQeNPzs/dNuaKTUsmbWESZWTEIRJlZNYMmsJNVNq\nMlIWU/gsUDPGmKEuUaf3sKAqUZNkkK6uvgEJjb4RjV4AF9Sxf82a5Ofo7HT6rkH8tp2d8NRTfccN\nGpQQe70D1LjmJmpHrqKlElSgpRJqRz5J49M3h+5TM6WG5sua6al9k+YHJlHz0ZkDLocpHhaoGWPM\nUOUFR0G50Do7YdWq8KDKXyOViupqp2/W/PlOUOTxmkUXLIjv2D99OpSk8WeqvDy+T9j06c5x58/v\na44cyOCGJOqenM+esuhle8qg7okfJd/ZZjAwASxQM8aYLBCRZhHZKCLrRWRtrssTyAsM/LnQ/PnO\nurvDg6pkNV3V1aBK0+rVfR3oY2vT/OdpaHCOedtt8NnPOs2Tt92WXq1douS8DQ1911JWlrSTf39t\nLdmV1vJemRjcYHOKFqWcB2oicrmIqIgc6Fu2QET+JiKviMgZuSyfMcYMwOdVtVpVp+W6IHGCAoNF\ni6IDs9dei9+vuxseeSS4Nk0kONGsF0AsWBB9fE9XV9/yzk547jn4xjfC+6d5QdbcuX0Jdj2JkvN6\nx8viPKATD5iU1vJemRjcYDVyRSmngZqIHAZ8AdjqW3Y0MBuYDHwRuFlESnNTQmOMKVKxgYHXNJis\n835XF4wb5wRJJSUweXL0bASJktCuWJG8XF6ZXnklvDbtqaecn4mmjUrWPJuleUD7NYozExPK25yi\nRWtYjs9/PfBD4EHfsq8Cd6nqPuANEfkbcALwbA7KZ4wx/aXAkyISAW5R1SWxG4hILVALMG7cOJqa\nmgalYOVtbZy4dCmlvsCgZ/lyEEn67V2BtyZM4KClSynt6UE3b3aS2rrHidx6K8/PnEnnmDGUt7Ux\n9Yor6HnjDUp6etD2drS0lJJIBBVxasWgb/+Y83SPGsWw3buj1vcMG0brxz/OX5ua4PrrKW9r4+if\n/IQtV19N55gxvdsdefHFjO/uDr+ezk52Pv44LwzgPd+1axd/uu++qPMfyqF8/2Pf59Y3buWdfe9w\n0PCDuOjwizi07dDQ3++R118fV9aeri5aL76Yv152WUpl8R8j3X3Drm2wPo+DrdCuTdT9jzLoJxb5\nKnCaql4qIs3ANFV9T0R+BTynqg3udkuBlap6b8Ax/De54++6667Bu4BBsmvXLvbbb79cFyMr7NoK\nUz5d2+c///kX8rJZERCRQ1X1TRE5CHgC+DdVXRO2/bRp03Tt2kHqyjZvHixdmvpggAsugLvugn37\nnNelpU5tWlDtW0kJXHwx3HQTzJuHLl4cGIgNiDcwAZxrueWWvnN6jj3WmWM00b4D1NTUxIx77gk+\nfzoGWtbWVjjiCNi7t2/ZiBHw+utw8MH9KlJTUxMzZszo1775Ll+uTURSu3+patYewJPApoDHV4Hn\ngUp3u2bgQPf5r4A5vmMsBc5Odq7jjz9ei9Hq1atzXYSssWsrTPl0bcBazeI9LFMP4BrgPxJtM6j3\nsOrq2G70zqOiInj52LGqJSXB64Iekyerbt+uOnx46vskepSXq86bF38d27f3lXnECNXW1sTXvX27\n6vTpybdL0R/vvTe982fL3LnOe5TKe5aifPp/nmn5cm2p3r+y2kdNVU9X1WNiH8DrwOHAS25t2gTg\nRRE5GHgTOMx3mAnuMmOMKQgiMkpERnvPcfribsptqXzWrQsOiTo64pdt3w47d6Y++rK83Bk4sGhR\neuk7Egnrs5VuB/wMd7afdMcd2ZvdAFIfxZmor14CjRsbqbqhipKFJVTdUEXjxoARuSbncjKYQFU3\nqupBqlqlqlXANuA4VX0LWAHMFpHhInI4cCTw51yU0xhj+mkc8IyIvIRz/3pEVR/LcZn6J92Aq7PT\naVb1Zi3IlI4OuPTSvtfr1zuTsqfaAT/Tne1bWzn4sceiz794cfQk8QOVamAZFngnaDZt3NhI7UO1\ntLS3oCgt7S3UPlRrwVoeynl6jliquhm4B9gCPAZ8V1UDxnMbY0x+UtXXVfXT7mOyqhbuxI1rQrvV\nhdu3r68/Wyb9/vd9NUxz5sQHgt3dcNxx0XnU/LMS+Gu/jjvOydXW37xjixYhsbWMqtGTxA9EioFl\nf2vF6lbVsadrT9SyPV17qFtVN+Cim8zKi0DNrVl7z/e6XlU/pqpHqerKXJbNGGOGtOnT+9JveJn/\nYxPjBslEbVpsZ/rOTidwnD/fmV0gVleXE+D486j5ZyXw1361tjq52tJoCo0Kikbfyp2f6o7faMuW\nzKTGSKFZdyC1Ylvbt6a13OROXgRqxhhj8lBYfq9kMxMMGxY/9VNFhXO87dudUaPJlJbCypVOMBWr\nocHJ2QZ9weO6dX3nvP32vonXY2cl8PNytSVrMj31VBqfvjk6KBrZxbfPGU7jhoboxLthueTSkWJe\ntYHUik2snJjWcpM7FqgZY4xxxHZeD5usPWxmAk93d/AE6YsWxc9+ECYSgdpaePXV4HWxQczs2dE1\nUP6J1/2zEoSV199k6ufWytU98aO4oGhfzz7qHv+RM9XVQJLVBp0zhUnjB1Ir1q/EvCYnLFAzxpih\nzj/Fk78pMGw04YQJMHZseufo6YHHHnOCmFQ99FBq23V3O7Vj/jJu3hxd9hEj4Mwzg/f3mkyrq6MD\nLF8/sdA5PHe+SeMn9lF1GZRcDVWXQeNRnQOrVUtxFGd/a8UaNzb21saVuhP/TKqcxJJZS6iZUtP/\ncpussEDNGGOGukWL4Omn+yZG92qE/KMJt293+qu1tsKjj8Lu3emf54MP0ptkPVXJpr0Cp0bq4YcT\nb/P229EjS+fP7x0UMXFH8C5j9kDtLGg5AFScn7VfitDYkuRciaQ4irM/tWL+fm0AEY307mNBWn6y\nQM0YY4pVKnm4vFoj1b4myaDO6/5UEUFNc6n44IPM5VbzJBvU4En1vPfc47xf69fDHXf0DoqofxJG\nxknK9QYAACAASURBVBzCe70nZl74PeVQd3qC+RhSzY+WRM2UGpbMWsKkykkIklKtmI32LDwWqBlj\nTDFqbYXjj3dqyoKa4fzNnUH9yfz9rGJTRaxZ07+Aq7w8fpBBMhUVMHy487y0FCQmAEpUjnnz+moD\nYwcwlJY6wVhQoHfppXGDGGo2wpKHYNKHIOr8XPIQvD8yfndI0k8sg4l3a6bU0HxZMz1X99B8WXPS\nWjEb7Vl4LFAzxphiNH++E2Cphmf195o7g4Idf61abKqIadNSr8ny6+xMvyaus7OvfJFIfNqPRMf7\n9a+dBLTz58cPYIhE4OtfD873ds89gYMYajZC8w3Qs9D5WbMRJrYHnzq0n1imE++myUZ7Fh4L1Iwx\npti0tkKjL5dWd3d07U1Qc2csr/N6UKoIry9bCjS2BixdPT39z8nW0wPnnuuMUg3y2mupH3vEiL7A\n15eOo35VQJNot4T3E0t32qsMs9GehccCNWOMKTTJ+jjF1iB1dUXX3qTSx8zLTRaWKiKsyTGmiVEG\nmvjWy5fWX6+8AgceGLwunSBy716nmRh6R2U2ToG6mbCnDEojgNckuntmcBNkivnRsqk//dpMblmg\nZowxhSa2j5M/cIutTfN4tWrr18Mtt8Snrli/Hk46qS9x6223OccLShUBTioL/4hQryk0poZuwPMT\nJBvR6SW8VYXJk8O385dxxAi44IL0gkDVvnQh69bRuKGBb58znJYDAIFIKYzsdmrYan79x8Dgq/Hn\n51M1d29fGo8p5KRWLd1+bSa3LFAzxphCEtTHKXZEZlBzZleX05Q5Z05wDVlNDTz3XF9QtnevUzO3\nbp3T1FdS0hcQqTopOoLm0YwxwIbP5LzJ0KdODZ5WCpxatQUL+t6Xrq74vnnezAnV1eHn2rOnNwCr\nW1XHvp7o/m17ypwatqDgq3FjI7Wj/kBLpS+Nxyw351pMfrSMy9AoU5Mbw3JdAGOKRVdXF9u2bWPv\n3r1UVlby8ssv57pIWZGLa6uoqGDChAmUDbQZrBjE9nGaPx/uvrsvcDviiOD9qqud4OrQQ+PXdXYG\nBznLl8PGjc467/hXXgkHH9wXHF56KfzXf8X39RIBVZRBCNZUnXImsnx53/vWHTBHZ2enMzvBiy86\n1+eZNw+WLnXWewHYTTeFj56spK9J03uvcNNiDIt+j/aUQ92Fk6i5bF1vEtqt7VuZWDkxaV6ztLb3\nB/I33RR6TJOfLFAzJkO2bdvG6NGjqaqqYteuXYwePTrXRcqKnTt3Duq1qSptbW1s27aNww8/fNDO\nm5fCOvZ7KS8iEafmZNOm4P3nzXOa+zo7nSbDiy5y/nDPm+eMkIzV0+MELv7jL1oEP/5xX61eUJAG\nvcvSCtLc4C4rkvXJ6+lx3l9/sOa+341HdVI3E7ZWdjJxx83UPz2ZiZUTe5PG+vWOAvUFdZA4LYaX\nhNbLb+ZNrg4EBl9B28+5fw6XrryUX/7jL6P3ia2B9QWPpjBY06cxGbJ3717Gjh2LDHSUm4kiIowd\nO5a9e/fmuii5F9ax3+vHlahzelhHdm/y8kQBknfOzk6n75o/91omA6thw2D8+PQmbx+IsWP7+uR5\nWludWkqARYto/GRX9MwDlVC76lI+PubjcYcb2en0UQPipnwKS39RIiXMuX9OWklog5LWArR1tFH7\nUC2NG319FHM8ytQMnAVqxmSQBWnZYe+rK6xjv5/XtyxWWJBXU5PaJOmeffvCc68NlDfn5qJFwbnP\n0jV2bPxgB09FBezaFXwdDQ29AynqZkTiZx6Qbv7wxh+ilglwwTont1pvKg93yqfGjY3s6gyeKzSi\n4dfYn+S0UQFeHowyNQNngZoxxhSK2Dkggzq+qwbnDQub6Pu111KbK9N//IEGUEE+8pG+YOq225xg\nKUhpKZxzTmrH9Dr/BwWpnZ3h1+31/Vu3jq0HBH9J0JjxrAo8epRvf7fmymumbOtoi9q+RJL/+e1v\nctreQC4sOLdatYJigZoxuZTh0VilpaVUV1f3Ppqbm0O33b59O2effTYATU1NnHnmmWmda8aMGaxd\nu3YgxTUDFTtpuhfo7N4d/5kKmuh7+3b49Kf7pmjKpR07+jr579sX3qcsEnH6xfk0TnHSXUSlvfC2\nXbQoOEjt6Yk7R9RxPrKMxqdvZuJ+h6R8CVsr3Se+mquwZsoeTdxnLlES2i8d+aWE+/YGcjHX3TgF\nquZ1UvLRm6m6oSq6idTkLQvUjMmlDM75BzBixAjWr1/f+6iqqgrd9pBDDuHee+/NyHlNHuhPX6RF\ni+D554OnUcqWyZNhZMAEmZFIX6CWRr+3xilE9yHz0l5MoS9gWrkyOjidPt3JGzd9em/utcDjrLqU\nL71TSVnAINEgUdNJub+D/syhmSwJ7aN/fTR036gAzw3OGzc0cOBPxzLn677rcwcsWLCW/yxQMyZX\nBmnOv+bmZk455RSOO+44jjvuOP7kdnBubm7mmGOOidt+9+7dXHjhhZxwwgkce+yxPPjggwB0dHQw\ne/Zspk2bxllnnUVHR0dWymv6oT99kbx9BqK8HI46Knz9iBH86b77omvxjj/eaZLMkLqZxPchK3fz\nmYET/M2fH53z7ZlnnL55zzzjLJ88Ofg40s2j/JX9U4ljFb70iu+1O5igP3NoJkvNERr8KSw55edR\n+4Y1vULiAQsmf1igZkyuZGE0VkdHR2+z51lnnQXAQQcdxBNPPMGLL77I3XffzSWXXJLwGPX19Zx2\n2mn8+c9/ZvXq1fzgBz9g9+7dLF68mJEjR7J27VoWLlzICy+8MODymgzpT1+kVKaRSqaz00kmG2bv\nXg5fsqTvddisCWGqq/tqwLx5Nv01Y+PH9zU3xuhd3tUFDz/sBGXz5/d9Odq8ue9L0rRp4ccZ2c37\no1IYzCK+PmrebAnr1gXOrZlMbE1X48ZGqm6oomRhCVU3VIUeb1I71Ny1OWpZWNOrpz81fmZwWaBm\nTC5kaTSWv+nzgQceAJxEvN/5zneYMmUK55xzDlvCsre7Hn/8ca699lqqq6uZMWMGe/fuZevWraxZ\ns4Y5c+YAMHXqVKZOnTqgspoMChsoEJbxPvbzF2TsWCevWckA/kyoMvbZZ/teX3ppegMRli2L7h7g\n79Ppvo5qbvSZuMN94o3u7OlxBijEnr+rC5YtCz/OfoemXCsW1UfNfe/9c2umak/XHi5deSnQVyPW\n0t6CorS0t7C7a3fcPmXu9FWx95FkgVh/avzM4LKEt8bkQqIakAxnDr/++usZN24cL730Ej09PVTE\npimIoarcd999HJWoScvkFzcNRMqCPn/+BLitrc4MB17tVTLV1dFluOACuOMOAEr37XMCB1VIt0/k\n174Gr7/u7Hv77c4giaefdgZA7HAisfpVTt8yf7PlyJ5h1K9WIGby+EgkPlBz+8UFHqcT6t/8JPzL\nt6ISzIaZeMAk0Oa45TVTaqiZUkPJwpK40aJh2jraemcfSHZegP073dQg5REaf3Y+dRP/ytb2rZRI\nSWgKkPLS8tABC57GjY1cuvLS3qbTUWWjqBhWwfsd76c0g4IZOKtRMyYX0q0BGYD29nbGjx9PSUkJ\ny5cvJ5KkRuOMM87gxhtvRN0/0OvcP8DTp0/nd7/7HQCbNm1iw4YNGS+rGSRhn79ly5LO3Rnnggui\ng7TW1qjUGuJ9AZk/P/3kuK+91rdPd7dzXFV45x0nXxxOcLLkIZj0IYjCpK5RLHkIata7n/OA0Z0e\n/yjPuplOHrTe43zoHLdm8TPUfHSmUyu236Ghs8yXlZQFBj3+ZstUUnL4zbl/TuDsB0HeH+Ge76hO\nakc+2VsDlyhPmyb5fTRubOTCBy+M6t+2u2s3bR1tvbV7/R2QENuca4MawlmgZkwuBKVKUE2/ZiQF\n8+bNY9myZXz605/mL3/5C6NGjUq4/ZVXXklXVxdTp079/+zde3xU1bn4/8+TkEDCJRyiIIoktLVV\nFAwStUrVaLT1funxKBoVa20qeG3t8Wjzs4g0p63Fn6JV21REK2nReqn3VskxIt5aUAQBb0VCkYga\nKhhISEie7x97T7JnsmcyyUwylzzv1yuvZPbes/Zak8zKM+vKgQceyI033gjAzJkzaWxspLi4mJ/9\n7GdMnTo17nk1fcjbbej39zdzJjQ1dY7j8gZykXYIeOaZ4LSvvz4oMMrYvdtJ76mnYst/a2vYbtOy\n1bDhdmifAxt+2UzZO92PKfOb5fnAIU7LWvscJ72y1Tivw9y5lE0qY8M/T0fnZrBo2/Hk5+R3pJWf\nk8/CMxd2aVkK7bZs07awgV6sMtqdMlWUOpvDR6O1vTVoMoE3eJr++nSufu5qWtoiL2zcmwkJft25\nNgM1POkuok4VxcXFmo5rOtXW1lJSUpLobPSJdCvbunXrOOCAA4D+3w+zPyWqbN7XN0BEVqhqcb9n\npg/0eR02axb87ndw2WVdu9cDXZ3NzU5QlpkZ/c4DOTlwzjnOpucXXhi8+XnAoEF9t1BubxQVUXjB\nZ9Q1ftzlVMEXTpAW5MAD4YUXOl+jnBxYv57ad9+lpKQk7AbphbcX+reIuf92BSdIjJfcFjdI60Ga\ngtA+u73L/qE9EUgjWuFel4K8AipLK6PebL6nG9kHJMv/nmjrLxujZowxqa6+HqZPh4ce8t9wu7uN\nuUNnIPckoAp0SQYG6/t1M+6OciGyeAkdM+dj403iG9DU5TndoXV5kNkObRlQ0F7Hybcfz7Mzm9k4\nAsZvb6LylgvZ5/QKZj0zi98u/23H2DPvhuphB/KLExCe/B789rCeB2sZZIB0XTR3ZzZkqtDm02yX\nKZm+3aDjm7IjLswbjZ5OSAj3utR9UUf5kz9g525n6Z9Im9P3dCP7VGZdn8YYk+q6WzjZbymYQHdl\nYFN2bwtaYK/KcNtUeXm7JHvaYlZU5MwujZeios4hBN3s+jG+yb9/UHC6QRFoy3S+12U2ck/OWury\nOjdmv2ToEu5c9UvuWX5PlwkCgVmbkQKYujyoKu5di1o77WF3NmhDyR2UE3QsNyuX8qnlXZb1yG0f\nROWzu6i+5cKox8KF8i6wG+24s3CvS2Y7HUFaQLiuVb/AMl3XhbNAzRhjUll3CyeHWwrmhhs6F36N\ntAbbW28549eyQ1aD7YmMjM5xbt4g8K23YN99e58uOEuIeNMLCBe8ugFc5am3dwlcRCMETiHHWwbB\nY1v/FjZbDU0NbGncEiHfbiAYZwXboaphWtAYupxBOUwbP61jmRBBKBi2D1XusMHvDV0SNr38nPyg\ntKBzn9LADgoAe9yyR8fkh+7GnfmuLadO66Ufvxa43mxYn6osUDPGmD4gIieKyHsi8qGIXN9nN+pu\n4WS/GZze7sq1ayPPQI5mzbXutLcHt7p58lj9h59QeFsBGTcJhddlde7TGa2sLP9gzBO8Vr98N4W3\njnPucdd+VP97KWWL13QGLu4szx6P2O6mNay5rbmnKUZtaJbPpCCFzwfDD4csCZqp2dDU0NEtuOGa\nDbTPbmfDP0+nbE0GFaXQGmEQ1PyT5jP/pPlBgVW7tge1pPV054PA2nJBAaAQ9vUclTOqy7Hebljf\np+K8d3NAwgI1EblJRD4WkZXu18mecze4ldt7IvKdROXRGGN6Q0QygbuAk4CJwHkiMjHuN4pm4WS/\npTi83ZVZWc5Eg3AzkHu7g0G4hXI9eewy+y+3lfLpuVSvWtS5+0CkGaeB9F56qfNxfb2zTZVbvlnH\nNXNhzeXUNX7sdFtm7XD2An3995TtWeoELjcpG25TCkZGvyhtovmOJxPYMQR2DPa/PhA0VS+9i8Ih\n95BxQwt1YXZkCLj6uau54LELwnYzdje2LdClGtotCjAse1jkm7u+bPmyS8ucX6tcpI3sw4nrMiFx\n3rs5INEtarepapH79SyAW5lNBw4ETgTudis9Y4xJFYcBH6rqelVtARYDZ8T1DoGApLuto559NngL\nps2bndX6A7rZFaN64zMUzmohY7YzyL6jxSswHswvTYgc3Ll57Hac0dy50NYWtN5ZUB4OPNAJCI85\npjOB6693ytraSvUkuKdYu3Rn7syGH36nlUG/3RuZIwy6eRCznpnFyfudjPRkymQCRbtwrlfdtjr2\nuGUPLv6/KzvG23VXXL+WMm960Yxtkzni2y0a7bi4lraWLi1z3h0fBOl2I3s/cV0mpA/3bk50oObn\nDGCxqu5S1Y+AD3EqPWPSSl8s+CgiXHvttR2P582bx0033RRzugCfffYZhx9+ON/61rd4+eWXw153\n6aWXdmxTVVhYyOeffx71Pe6//36uuOKKmPOaBPYB/uV5vMk9Fj+BCQHdLZwc+im/B/uCVq+upvzI\nz4PWGiv/7iCnxSt0PJjfTgdjx9JYWNg1724eI44zcv/x+a13Vn6aG6x59+v85JMue4lefSJhA5Ed\n2dAmTrDTpm3cs/we34kB6aahqYHdEp8yxhLU9nSGqd/fStmkss6u3Gs29Hi2Z8wTEkK3NIvz3s0B\niV6e40oRuQhYDlyrqv/Gqcxe91wTtoITkXKgHGDMmDHU1tb2bW4ToLGxMS3LBelXtry8PL788ksA\n2traOn728/C6h7nyhStp8kxD/8GTP6C5qZlzDjin13kYPHgwjz76KFdeeSX5+fns2rWLXbt2RcxL\ntJ5++mn2339/5s+fT2ZmZtg0b7vtNsBZb01VaWxsZPBgn74YH83NzbS0tPim3dzcnFZ/L9D7Oiy7\noYHDFywgE2gbPJg3/vhHWkaFjOOpre28rr2dtgULeKO0lMnPPccwn+Duy+efZ0XI/a99/dqu/8hk\nNz954ir2aeislqe+8ALDfdLU+no+P/lkli9c6FuO0a9PZ8uurgPuRw8ezceXXcbY3budBVxD5jHs\nzHYWdj1/tROHLfp6M9ff+RU2ZzWx75XwvzXOYrUNkfZCT42Gs6TWn0Ht6MGj4/b+D/zvifRBIZp7\n7Xfbbez98st8cvHFjH7xRTI9QxAC77cu78te6NNATUSWAD6L+lAB3APMxRm/ORe4FbikJ+mrahVQ\nBc5ikcmwgF28JcvCfH0h3cq2bt26joVgu1sUdu6rczuCtICm3U3MfXUu3z/s+73Ow6BBg/jhD3/I\n73//eyorKxk8eDCtra0MHz6cDRs2cMkll/D555+z5557snDhQsaPH8/FF1/MiBEjWL58OZ988gm3\n3HILZ599dlC6K1euZPbs2TQ1NfHWW2/xxhtv8OMf/5h//OMfNDU1cfbZZzNnzhwASkpKmDdvHsXF\nxYgIw4YNY/jw4SxatIg77riDlpYWDj/8cO6++24yMzNZuHAhv/jFLxg5ciQHH3wwgwcP9n3thgwZ\nwpQpU3r92vSzjwHvdMZx7rEgva7DZs3q+DFTlSNrajr36PSup+Z33Ukn+S58OxwIvfunL33qe/st\nu7cGv3c/+CD4AncBXWluZt+aGgoXLPBd3+3W/Fu7LLIqCFt2bWHa/s9R+dHuzo3OQ2zMc2Kt6klw\nyWlK6yDn/bRxJFzwXXhlnP/zAOe/jgVqSacgr4CT9zuZB95+IOhvIjcrl1tPuZWSSSVxuU/gf8/4\nleN9u1/H543v/n9TfT08/zyoMnbJki5jKYPelzHq065PVT1eVQ/y+XpCVbeoapuqtgO/p7N7M6oK\nzphU1pdTyy+//HKqq6vZtm1b0PErr7ySGTNmsGrVKsrKyrjqqqs6ztXX17Ns2TKefvpprr++6wTF\noqIibr75Zs4991xeeeUVcnJyqKysZPny5axatYqXXnop4t6f69at46GHHuKVV15h5cqVZGZmUl1d\nTX19PbNnz+aVV15h2bJlHV2maeAfwH4iMkFEsnHG3T4Zl5QjTSDwdnP6XXfffc5XlONows6s2wZE\n2uvV0w0kEbqBvOOMwAnSOhaOdScWjFL/1tjx7p/31Sf6zFoUuCfSgBkL0pKOIGy4ZgN3n3J3zGPP\nohXThITQrs4+3Ls5kbM+x3oengW84/78JDBdRAaLyARgP+Dv/Z0/46OPph4PRH05tXzEiBFcdNFF\n3HHHHUHHX3vtNc4//3wALrzwQpYtW9Zx7swzzyQjI4OJEyeyZUuEtZ88Hn74YQ455BCmTJnCmjVr\nIgZZNTU1rFixgkMPPZSioiJqampYv349b7zxBiUlJey5555kZ2dz7rnn9qLEyUdVdwNXAH8D1gEP\nq+qauCR+/fWwa1fwsba2zj06A0HYDTd0HTfW0uLM+Aw8xxtA+by/K0sryd0dHNXktjj7YeL+LXUR\nEiB27PUZpt4IjDMqyCvwXTiW5l3khvwPzNoNjVnO5IKw3ZsWjKUUb90XbuxZvMf19npCgt+SNd71\nAeO8d3MiJxPcIiKrRWQVcCzwIwC3MnsYWAv8Fbhc1WffC9P/+mjq8UAUr6nl4VxzzTUsWLCAHTt2\nRHW9dwxZYP/fiooKioqKKPJZmf6jjz5i3rx51NTUsGrVKk455RSam8OvGaWqzJgxg5UrV7Jy5Ure\ne++9uE1ySFaq+qyqfl1Vv6qq8fnFgrMJeugezS0t8PTTwZ/wn36666f89vbOa0Jne/q8v8v2OI6q\nJ5SCL+hYa6zqKXez8rVr/YOvHkxW8ArXmrw1x7lnIA/5O0EyM2gYGsWsRQvWUkI0dV9fbeTeqwkJ\nvfwb762EBWqqeqGqTlLVyap6uqrWe85VupXbN1T1uUTl0Xj04dTjgSgeU8sjGTVqFOeccw4LFizo\nOHbkkUeyePFiAKqrqznqqKMiplFZWdkRWIXavn07Q4cOJS8vjy1btvDcc5HfpqWlpTzyyCN8+qkz\n5mnr1q3U1dVx+OGH89JLL9HQ0EBrayt//vOfe1rUgaW+HgLBt/cT/ObNznFvN+fOncGf8P12F/Bu\nJ+X3/p47l7L3stlwO7TPcTYrL1vtPtdvoVnwX7ctim6gSN2sZavpyMOwFmiRXqzrZhIm0uzQTMmM\nqu5Lqi2jevk33lvJuDyHSUZ9OPV4oIp1anl3rr322qClMe68804WLlzI5MmTefDBB5k/f36v0z74\n4IOZMmUK+++/P+effz7Tpk2LeP3EiRP5+c9/zre//W0mT57MCSecQH19PWPHjuWmm27iiCOOYNq0\naRxwwAG9ztOAEO59GM0n/Ej/XMKl6/ec0OeGeuutoO6f2hdfjKobKGwr8yWLgtLbODLKZrL0XmWj\nVwShdEJp1+2bYpRBBtmZ/luM5WblclnxZWRldN1bNTszmwfOeiCqui+ptowK+RuPd1dnKNHQJvQU\nVVxcrMuXL090NuIuKWZGujO48HZt5eTA+vW+M7milRRli6N169Z1BBrdzfpMZYkqm/f1DRCRFapa\n3O+Z6QPd1mGR3ocnnQQ+LZ8UFXX/z6OP3t8BPXmfV6+upqKmgo3bNjI+bzyVpZVd/okX3l7oO1Mv\nQzI6NirPz8nnnAPP6TJ7sFuBf4dJ1GUqCJcVX8a08dP43l++R2t7a6/SyZTMjqAo8DrXbasLmsAR\nKjcrlyPGHUHNRzVdzg3NGsrO1p0dvyegI81MyaRN2yjIK+j4HVavrubq567uWEA3Pyef+SfNj/oD\narjfe0FeARuu2RDlq+BIlv890dZfiV5HzaSCSJ/W4zD12BgThUjvw1g+ySfR+7tsUlm3/7grSyu7\nLOmRm5Xr2302bfw03+DBbwkIUbjs7zBtk7NGW8fWSn0UtGVlZHHpIZfy7AfPBgWmQMRg1RvsBGRI\nBlkZWexqC5lk4gp9fbyvszc4DuypubVpK6MHj+bWU26lbFIZs56ZRdWKKtq0jUzJpHxqOXefcneX\n+0T63UXzu40k3O89XuN6k5qqpsXX1KlTNR29+OKLic6CalGRXyOvczwGSVG2OFq7dm3Hz9u3b09g\nTvpWosrmfX0DgOWaBPVPPL66rcP66H3YZ+m6+uJ9vmjVIi24rUDlJtGC2wp00apFfZJGd9d4y+a9\nNv9X+Zr/q/yg58Ujz/EsW3eSsX6O12uYLGWLtv6yFjXTvT7qd09HqopIEvWbpAlNkyEaMemr92EK\nvr9jbZ2JNo2e3Cfa9PpDPF6fZJSu5eqOTSYwJk6GDBlCQ0ODBRVxpqo0NDQwJHTTb2OMGQCsRc2Y\nOBk3bhybNm3is88+o7m5OW0Di0SUbciQIYwbF2lPIGOMSU8WqBkTJ1lZWUyYMAFwZhWl0L6UPZLO\nZTPGmGRjXZ/GGGOMMUnKAjVjjDHGmCRlgZoxxhhjTJJKm50JROQzoOuyxalvD+Dzbq9KTVa21JRM\nZStQ1T0TnYl4sDosJVnZUlOylC2q+ittArV0JSLLNU22yAllZUtN6Vw2E3/p/PdiZUtNqVY26/o0\nxhhjjElSFqgZY4wxxiQpC9SSX1WiM9CHrGypKZ3LZuIvnf9erGypKaXKZmPUjDHGGGOSlLWoGWOM\nMcYkKQvUjDHGGGOSlAVqSUxEThSR90TkQxG5PtH5iRcR2VdEXhSRtSKyRkSuTnSe4k1EMkXkLRF5\nOtF5iScRGSkij4jIuyKyTkSOSHSeTHKy+it1Wf2VXGyMWpISkUzgfeAEYBPwD+A8VV2b0IzFgYiM\nBcaq6psiMhxYAZyZDmULEJEfA8XACFU9NdH5iRcReQB4WVXvFZFsIFdVv0h0vkxysfortVn9lVys\nRS15HQZ8qKrrVbUFWAyckeA8xYWq1qvqm+7PXwLrgH0Sm6v4EZFxwCnAvYnOSzyJSB5wNLAAQFVb\nUqGSMwlh9VeKsvor+Viglrz2Af7lebyJNKoMAkSkEJgCvJHYnMTV7cB1QHuiMxJnE4DPgIVut8i9\nIjI00ZkyScnqr9Rl9VeSsUDNJIyIDAMeBa5R1e2Jzk88iMipwKequiLReekDg4BDgHtUdQqwA0ib\nsUfG9ITVXyknZesvC9SS18fAvp7H49xjaUFEsnAquWpVfSzR+YmjacDpIrIBp7vnOBFZlNgsxc0m\nYJOqBloPHsGp+IwJZfVXarL6KwlZoJa8/gHsJyIT3EGP04EnE5ynuBARwRknsE5V//9E5yeexekC\n8QAAIABJREFUVPUGVR2nqoU4v7P/U9ULEpytuFDVT4B/icg33EOlQNoMoDZxZfVXCrL6KzkNSnQG\njD9V3S0iVwB/AzKB+1R1TYKzFS/TgAuB1SKy0j32U1V9NoF5MtG5Eqh2//muB76X4PyYJGT1l0lS\nKVl/2fIcxhhjjDFJyro+jTHGGGOSlAVqxhhjjDFJygI1Y4wxxpgkZYGaMcYYY0ySskDNGGOMMSZJ\nWaBmEk5EGuOY1uMislJEPhSRbe7PK0XkSPf8HiLSKiKXxeuexpiBzeow05dseQ6TcCLSqKrD4pxm\nCfATVT015PhM4HygXVWPiec9jTEDk9Vhpi9Zi5pJGuL4tYi8IyKrReRc93iGiNwtIu+KyAsi8qyI\nnN3L25wHXAvsIyLj4pZ5Y8yAZ3WY6QsWqJlk8l2gCDgYOB74tYiMdY8XAhNxVgQ/ojeJi8i+wFhV\n/TvwMHBuHPJsjDEBVoeZuLNAzSSTbwF/UtU2Vd0CvAQc6h7/s6q2u/u1vdjL9M/FqdzA2XD4vFgz\nbIwxHlaHmbizvT7NQHIesJeIlLmP9xaR/VT1g0RmyhhjomR12ABkLWommbwMnCsimSKyJ3A08Hfg\nFeA/3XEeY4CSniYsIl8HhqnqPqpaqKqFwC+wT6TGmPixOszEnQVqJpk8DqwC3gb+D7jO7SZ4FNgE\nrAUWAW8C23qY9nlu+l6PYpWcMSZ+rA4zcWfLc5iUICLDVLVRRPJxPqFOcytAY4xJelaHmd6yMWom\nVTwtIiOBbGCuVXDGmBRjdZjpFWtRMylLRB4HJoQc/h9V/Vsi8mOMMT1hdZiJhgVqxhhjjDFJyiYT\nGGOMMcYkKQvUjDHGGGOSlAVqxhhjjDFJygI1Y4wxxpgkZYGaMcYYY0ySskDNGGOMMSZJWaBmjDHG\nGJOkLFAzxhhjjElSFqgZY4wxxiQpC9SMMcYYY5KUBWrGGGOMMUnKAjVjjDHGmCRlgZoxxhhjTJKy\nQM0YY4wxJklZoGaMMcYYk6QsUDPGGGOMSVIWqBljjDHGJCkL1IwxxhhjkpQFasYYY4wxScoCNWOM\nMcaYJGWBmjHGGGNMkrJALQFE5F4R+an78/EisqGX6YR9rogMEhEVkcLe5rM3901nIjJWRJaJyJci\n8qturs0UkUYRGe8+XiQiN/XyvmGfKyKXikhtb9KN5b5mYLM6LDVZHZaaBiU6A6nMfaOPAdo8h7+u\nqpsjPU9VL+3LfJk+cxmwGThKVTXSharaBgzrl1wZ00tWhw04VoelIAvUYneaqi5JdCZMvygA1nZX\nwRmTYqwOGzisDktB1vXZB0QkQ0QeEZFPROQLEakVkQM85yM1A48TkcdF5DMR+UhELvecyxWRB0Xk\n3yKyBpgaRXZOc9P5XER+KSIZblr7iciLIrLVPfegiOR57rVJRH4sIqtFZJuI/ElEBofJ849E5B0R\n2VtERovIs265t4rI0jDP+b2I/DLk2DMicpX7809FZLOIbBeRd0WkJEw6i0TkDhF5zm3Of01EJnjO\nf0tElrtl+LuIHO45t0xE5ojIq+5z/yoio8Lc50GgDPip2x1QIiJHiMjrblnr3XxkuddH7LYRkdNF\n5G33uctE5CDPuakistLN058A39fdI0NE7nbLuE5EjvWkdal77EsR+aeIXOo5d7yIbBCR69y/t80i\nclGY/I4QkaUicps4TvWku0lEftRNHk0KsTrM6jCrw5KIqtpXL7+ADcDxPsczgIuB4cAQ4DfAcs/5\nRcBN7s/HAxs8z1sJ/BTIBr7m3qPUPT8PqAX+A/eTUeC5PnkYBCiwxHP9h8DF7vmvA6XufUYDrwDz\nPM/fBLwO7AXkA+8Dl/rk+WZgOZDvPv61W94sN+2jw+TvOLds4j7OB5pwumEOBOqAvdxzE4CvhEln\nEfA5UOze8yFgkXtuD2AbcJ77elwINAD/4Z5fBnwA7AfkAi8DP4/w++74vbmPDwUOd9P+ivsaXRHy\n+hf6/M4PBba43zOBS4B/uq/XYPe1v8otz3Sg1XvfkDxdCuz2XH8+8G9gpHv+NDdv4r7mTcBkz+9x\nNzDbfe7pwA5ghDfP7uu4IqTsnwFHuj+PAg5J9PvRvnr+hdVhYHWY1WFJXodZi1rs/uJ+ovhCRP4C\noKrtqnq/qn6pqs04fyhTRWRoN2kdgfMH9r+q2qKqHwILcP7QAc7BeRP+W1XrcCqT7vzSc/0dOG94\nVPV9Va1x7/MpcBtwTMhzb1fVT1S1AXgaKPKcExGZ7z7nOPcacN6QewPj3bR9P43iVNZZbpkDZXtZ\nVbfgvPGGAAeKyCBV/UhV10co4yOqulxVW4FqTz5PA9ao6p9UdbeqPgisB07xPHeBqn6gqjuBP4eU\nMSJV/YeqvuGmvR6ooutr6KccuNt9fpuq3ucePxSYhlM53qmqraq6GHirm/TqPdf/EfgIOMnN41Oq\nul4d/wfUAEd5ntuM8zfVqqpPArtw/gEGjAOW4vzjuMlzvBWYKCLDVXWrqr4ZRblNcrI6zOowq8OS\nuA6zQC12Z6rqSPfrTOiYLXOLiKwXke04nwLBieojKQDGeyrNL4DrcD4RAowF/uW5vi6K/IVev7eb\nx71E5GER+djN4/0++fvE8/NOggeW5uN8EqpU1e2e479071PjNlP/t1+mVLUd55Pjee6h83EqKFT1\nPeBanE+6n7pdFnv5pdNNPvem62tUB+zT3XPFmdXW6H5d53dTEdnf7er4xH0Nb6b73zE4v+f/Cfk9\nj3XztTewSVW9Y0i6+z37XR/4PZ8qIm+4XThfAN8OyePn6gwaDgj9PZ+G88n69yH3PAvn0+tGcbrF\nDsekKqvDrA6zOiyJ6zAL1PrGRcDJOM20eTjN/+A03UbyL+ADT6U5UlWHq+pp7vlPgH0914+PIi+h\n1wdmc/0K55PHJFUdgdPN0V3+vD7H+SNfJCLfDBxU1e2q+iNVLQTOxHkzh/uE9ifgv8QZj3EI8Jgn\nnUWqOg2nyyAT+EUP8hawGadC8RoPfNzdE1X1UlUd5n7dEuay3wHvAF9zX8OfEd1r+C9gTsjvOVdV\nH8b5ZDnOJ8+R+F2/WURygEdwXrsxqjoSeD7KPAb8FngReEZEcgMH3U/hp+N0OT0NLO5Bmib5WR1m\ndVgkVof1IwvU+sZwnAqkAWfcQGWUz3sNaBGRa0VkiPupdpKIBAbcPowzEHSkOGvbXBFFmtd5rr8K\n5xNgII87gG0isi/wkyjz2EFVa3Aq9CdEpBhARE4Tka+KiOCMrWgD2sM8/x/Adpzm9mdV9Us3jQNE\n5FhxBv42uV++aXTjaZyuh3PFGRh7Ps4/nGd6kZaf4Thl3CHOQOsfRvm83wOXi8ih7qDWYe7rNhRn\nzEmGiFzh5vkcnH8AkYz1XD8d+CrwV5yxItk4YzHaRORUnDE9PaE4U/rXA0+6f5c5InK+iIxwu2q+\npHe/H5O8rA6zOiwSq8P6kQVqfWMhziehzcAa4NVonqSqu3E+xR6GM0j1c5xPPCPcS2bjfFrZADwH\n/CGKZJ/CGdz7FvA4TvdAIK3DcN6kTwKPRpNHnzz/FfgB8LSIFAHfAP4PaMQZ3DtfVV+OkMSfcAaE\n/tFzbDBwC075P8EZSFzRi7x9hvOJ+X9w/uH8CDhVVf/d07TCuBaYgfMm/x2d/0C6y9frwEzgHpxB\ns+8DF7jnduE0yf/APXcW8JduknwVZ/DyVpyxRP+pzpieL3DK/Lh77mycir9H3C6J7wOfumll45S7\nzu0u+X4g/yZtWB1mdVikfFkd1o8Cs1WMMcYYY0ySsRY1Y4wxxpgkZYGaMcYYY0ySskDNGGOMMSZJ\nWaBmjDHGGJOkLFAzxhhjjElSgxKdgXjZY489tLCwMNHZiLsdO3YwdGh3u7akJitbakqmsq1YseJz\nVd0z0fmIB6vDUo+VLTUlS9mirb/SJlArLCxk+fLlic5G3NXW1lJSUpLobPQJK1tqSqayiUg0WxCl\nBKvDUo+VLTUlS9mirb+s69MYY4wxJklZoGaMMcYYk6QsUDPGGGOMSVJpM0bNmERrbW1l06ZNNDc3\nk5eXx7p16xKdpT6RiLINGTKEcePGkZWV1a/3NcaYRLNAzZg42bRpE8OHD6ewsJDGxkaGDx+e6Cz1\niS+//LJfy6aqNDQ0sGnTJiZMmNBv9zXGmGRgXZ+G6tXVFN5eSMacDApvL6R6dXWis5SSmpubyc/P\nR0QSnZW0IiLk5+fT3Nyc6KwY0yesDjaRWIvaAFe9upryp8rZ2boTgLptdZQ/VQ5A2aSyRGYtJVmQ\n1jfsdTXpyupg0x1rURvgKmoqOiqIgJ2tO6moqUhQjkwsMjMzKSoq6vjasGFD2Gs3b97M2WefDTjr\nCp166qk9uldJSUlarvtlTH+yOth0x1rUBriN2zb26LiJs/p6mD4dHnoI9tor5uRycnJYuXJlVNfu\nvffePPLIIzHf0xjTe1YHm+5Yi9oANz5vfI+OmzibOxeWLXO+95ENGzZw1FFHccghh3DIIYfw6quv\ndhw/6KCDuly/Y8cOLrnkEg477DCmTJnCE088AUBTUxPTp0+nuLiYs846i6ampj7LszEDhdXBpjsW\nqA1wlaWV5GblBh3LzcqlsrQyQTkaQOrrYeFCaG93vn/yScxJNjU1dXR7nnXWWQCMHj2aF154gTff\nfJOHHnqIq666KmIalZWVHHfccfz973/nxRdf5L//+7/ZsWMH99xzD7m5uSxfvpw5c+awYsWKmPNr\nzEBndbDpjnV9DnCBwaoVNRVs3LaR8XnjqSyttEGs/WHuXCdIA2hrcx7fdVdMSfp1fba2tnLFFVew\ncuVKMjMzef/99yOm8fzzz/Pkk08yb948wJnNunHjRpYuXdoR5E2ePJnJkyfHlFdjjNXBpnsWqBnK\nJpVZpdDfAq1pLS3O45YW5/GNN8ZlrJrXbbfdxpgxY3j77bdpb29nyJAhEa9XVR599FG+8Y1vxDUf\nxhh/VgebSKzr05hE8LamBQRa1eJs27ZtjB07loyMDB588EHa2toiXv+d73yHO++8E1UF4K233gLg\n6KOP5o9//CMA77zzDqtWrYp7Xo1JNFvTzCQbC9SMSYTXXutsTQtoaQF3oH88zZo1iwceeICDDz6Y\nd999l6FDh0a8/sYbb6S1tZXJkydz4IEHcuONNwIwc+ZMGhsbKS4u5mc/+xlTp06Ne16NSaTAmmZ1\n2+pQtGNNs3QP1iw4TW7W9WlMIritVPHW2NjY5dh+++0X1Pr1q1/9CoDCwkLeeecdwFkTraSkBHDG\nuf3ud7/rkk5OTg6LFy/u9y2kjOkvVz93ddg1zdK1azLcgrs/+uqPKKEksZkzgLWoGWOMMVSvrqah\nqcH3XGBNs9CWpyVblvRnFvtEuAV37/3o3gTlyIRKeKAmIveJyKci8o7n2K9F5F0RWSUij4vIyETm\n0RhjBqped4vV18Mxx5C9dWvfZjBOIu0EkCEZyBzhgscuCOoWnff+vJTvJgy3sO6nuz61LtEkkfBA\nDbgfODHk2AvAQao6GXgfuKG/M2WMMQNd2DFbS++CY46JvPafu5hzwR/+0H8Zho4AsafrEkbaCaBN\n/Sfg7GrfxQWPXRA2iOlJoBO4VuYIg24ehMyRqJ8TSyAVbmHd4ZnDez1ezwK8+Ep4oKaqS4GtIcee\nV9Xd7sPXgXH9njFjjEkHoYFLDwKZsPtQLrk+8o4ansWc9/rrX+OymHOX9I85Bt5+u2tZerDbhzeg\nyJDe/zv0C2KinZhQvbqaPW7Zo6O1DjoDw3DpBgK6Cx+7MCj9Cx+70DfAixQ4hVtwF6FXe5AO1AkZ\nfUkCU/ATmgmRQuBpVe2yn42IPAU8pKqLfM6VA+UAY8aMmbp48eI+zmn/a2xsZNiwYYnORp9It7Ll\n5eXxta99DYC2tjYyMzMTnKO+kaiyffjhh2zbti3o2LHHHrtCVYv7PTN9oLi4WPtkk/tZs+B3v4PL\nLnMWVA59HEHGnAyUrv8jRKF9DpCTA+vXd137b9YsWLAAWlpoHzSIjPLysPeqXl3d7WKv1aurqXj+\nf9j45ceMHz6Oyo+/Qdn8F+GAA2Ddus6y1NfDV74Czc0deZu14maqVlTRpm1kSiblU8u5+5S7qV5d\nzSVPXEJLW4tvvvpS6YRSlly0hOP/cDw1H9X0yT0E4bLiywD47fLfBv0eBUFRCvIKOHm/k3l4zcNh\nx+f5pds+u933XPXqamY8PsO3BbIgr4AN12yI6h7R/E3Eora2tmPyVCKJSFT1V1IHaiJSARQD39Vu\nMtpnlVyCJcsfVF9It7KtW7eOAw44ACCtZ0Ymqmze1zcg2oouFURdh9XXw/Tp8NBDXQOk0HOhgctr\nr8E3vxkUyERKo3DxNztaebwKvoANtwMi8F//5bRo+d0zwO9e9fVUX30s5ZPr2NnWeW1uVi5Vp1V1\n/GMOnZUIkNsCVU9B2WrncfUhWVScP4aNX25i/HaoXAJl72Vz/LV7UjP44y75n7jHRNZ9vs43CDXd\ny87IZvjg4Wxt2toRSAFdfk+h8nPyg55TNqksOChryubkqdN54IM/B/++Q/4mAnob0Hn/98QUFPq9\n38K9N31EW38lvOszHBG5GDgVKOsuSDPGOESEa6+9tuPxvHnzuOmmm+KS9meffcbhhx/Ot771LV5+\n+eWw11166aWsXbsWcJYA+fzzz6O+x/33388VV1wRc16TgYicKCLviciHInJ93BL269oLdAXecEPw\nudBtysrKum5bFiF9326xFqgMNAKpwsMPw8svwyGHOAGb32LOzc1O3rz5nTqVin3eCwrSwOle8477\nqnj+f7p2wWVDRanzc/Uk+N7JrdQ1bkIF6vLggu/C8ee0UJPdNUgDWPvZWgvSYtDS3kJDU0NH1+YF\nj13ABY9dEDFIA7o8p8sEjZxd3LPmgbBdrt4u3D1u2YPv/eV7MXWxxtxNG/pe7EG3e08kZaAmIicC\n1wGnq2rk37wxKaovBtwOHjyYxx57rEfBUbRqamqYNGkSy5Yt46ijjgp73b333svEiRPjfv9UIiKZ\nwF3AScBE4DwRif1F8Yz9YuHCzrFZc+c6wdKiRZ3n3n676zZla9Z03bbsk0+cdI84AqZOhfvuc9K4\n7z7Kyn9D1VG/piBnLKJOS5q3JauDqpPG+PFQU9N1MWdVeOKJzvFk118P9fVszAtf1LptdZQ/+QPq\nvvQPtgLPvfpEaA1dEVSg5qvOd1/hjpvEC/O7CQRRgaCqoamB1vbWoGuiGUPnFXYMZjRphL4XA++3\n0PdmHCQ8UBORPwGvAd8QkU0i8n3gN8Bw4AURWSkiv01oJo2Js74acDto0CDKy8u57bbbupzbsGED\nxx13HJMnT6a0tJSNG51ZbhdffDFXXXUVRx55JF/5yld45JFHujx35cqVXHfddTzxxBNMmzaNpqYm\nZs6cSXFxMQceeCCzZ8/uuLakpAS/LrxFixZx2GGHUVRUxA9/+MOOrawWLlzI17/+dQ477DBeeeWV\nmMqfRA4DPlTV9araAiwGzog51dAWsrlzO/9hqDrHAue8rWfhBFq65s6F11+HN9+E1tbOc6+/Ttni\nNWxYMJz2OU53Z5cgzau1FTZudLpXX3gBhg+nPSvLObd9OyxdCpMmOQElMH5bhLSAnbubyAxThMBz\nG3L9z1swll4yJbPbFjuIPHs32mujSqM3rdW9lPCdCVT1PJ/DC/o9I8b0o0if5GIdNHv55ZczefJk\nrrvuuqDjV155JTNmzGDGjBncd999XHXVVfzlL38BoL6+nmXLlvHuu+9y+umnc/bZZwc9t6ioiJtv\nvpnly5fzi1/8gpycHCorKxk1ahRtbW2UlpayatUqJk+e7JundevW8dBDD/HKK6+QlZXFrFmzqK6u\n5oQTTmD27NmsWLGCvLw8jj32WKZMmRJT+ZPEPsC/PI83AYeHXhQyIYra2tqwCWY3NHD4ggVkelrE\n2hYs4NN//pMxu3cHf+puaUHXrkW6GzWiSssjj5C5axcd00NCgru2qioydu+OOu5RN8DjhBOcMgaO\nt7UhgLqtvYLThVp+mtOVGU5bhtPd6r0mqPvVDAjhlkgJNXrw6IjvI3AmstXW1jJ68Gi27NrS4zT8\n3ou6Zk3ne8R9b75RWkrLqFFR5TuShAdqxgxEMX2S68aIESO46KKLuOOOO8jJyek4/tprr/HYY48B\ncOGFFwYFcmeeeSYZGRlMnDiRLVu6Vlx+Hn74Yaqqqti9ezf19fWsXbs2bKBWU1PDihUrOPTQQwFo\nampi9OjRvPHGG5SUlLDnnnsCcO655/L+++/3qtypSFWrgCpwJhNEnFwza1aXQ5m7djF2yZLOljQP\nycqC/fYLnhUZUF8PEybArl1kNzVFbHnL3L077Dk/3fU2es8HWucqSp2xZX5PLtjmBGUVpU5353j3\nceC5+TuhIdz2tRohQyZl5OfkMyx7mO/EFq/crFxuPeVWSiaVRLwuMJng1vxbu05UiSYNn/di6J9Z\npipH1tR0O7M6Ggnv+jRmIAq3yGS44z11zTXXsGDBAnbs2BHV9YMHD+74OTB3p6KigqKiIoqKirpc\n/9FHHzFv3jxqampYtWoVp5xyCs3NzV2u86Y5Y8YMVq5cycqVK3nvvffiNskhSX0M7Ot5PM491nuv\nvdZ17Bf4BmmAc+3atf5jZubO7ezibGtzuk0TpGy106W66DGnpcwr0HIWuMav+3X+X2GQz0uQtRtK\n/wk2Z8ClJPdroTC02fm9eeVm5TL/pPm+E1uyM7PJz8lHEAryCnxnhkZSNqmMqtOqKMgr6Fka4d6L\nXi0t8OqrUeclEgvUjEmAcItMBqa5x2rUqFGcc845LFjQOYrgyCOPJLDWYHV1dcQJAQCVlZUdgVWo\n7du3M3ToUPLy8tiyZQvPPfdcxLRKS0t55JFH+PTTTwHYunUrdXV1HH744bz00ks0NDTQ2trKn//8\n554WNVn9A9hPRCaISDYwHXgyphTfessJqFRh82YYMiT8tUOHwowZEBgf5h0zU1/fOWEgiZStdiYq\nFHxB5IkLPs+7/y+Qv4OOYCR/Byx8ApYsgpl/d9ILkgxBSz/ff+ahM5l56EwyJbPz/qFfHhlkMHGP\niUg0TZIK0u6fDjhrqM0snkl+Tr7v0/Nz8ln0n4to/IWy8JxFvoGTX1B13xn38fl1n9M+u50N12zo\n1bCRskllbLhmQ8/S8L4XI3299VaP8+PHuj6NSYBAZdCXizpee+21/OY3v+l4fOedd/K9732PX//6\n1+y5554sXLiw12kffPDBTJkyhf333599992XadOmRbx+4sSJ/PznP+fb3/427e3tZGVlcdddd/HN\nb36Tm266iSOOOIKRI0f6tt6lIlXdLSJXAH8DMoH7VHVN3G7gHcic4X7ebm+H7Gynu3PtWmfAfqC1\nLTDD88Ybg1vTkkzZ6u4Ds54+7+7nYNqmrl2n0Hls1E7YPjhk9qg34Oij7tP8HZ7JEJ57iBvwqOdY\nwXah8qzfUHbULN+15cIFfvm5+cw/aX5H3XL3KXcHLUjcITsbLr20o6vOb53LwtsL/dfV2+auqwfh\n1+cL3LsbgaCsp+fSWVIseBsPtuBt6km3stmCt33LFrx1ecaX9UjgH3FNDbz3Xu8ymcaqJ/mPg6ue\n5KzL1uNgrZtAL38HNGWFTKRQGLoLWgYFB425LVD1bCZlR/6wI5AKWqh1mzqL/AaC1QjBEgBTpoBP\nSzlFRR2tQH71czSLD4cGfMkoWf73pPyCt8YYY3z0tkUsMGZmkHWk+OkyDu6QGaBK2Solf8hI/ye5\n3axdxlW1wqInMtE5zvfc3cGRmiA0DPWZ7SrQnNV1Xbid2VBR0uY/5smvsaW75SHCdd1101XXpftx\nZ1bX7uk4js0yDgvUjDEmlSxdGv34spwcpwUu8I/42WedbtE0Uz0JCq+BjNnO9+pJcUh00aKOCRjz\nP53aZaJD9m4Y1QRbc2HELidg6xhb9ySUrXS6nctWtlH1hFLwBc5YLnefzXDawvxX3jhSOgKpoHUY\n3d0Yyk/zlLsPg6WgMV2/aqFsVd+NzTIOC9SMMSaVHH20070EzvdZs5x/jjNndo5XCwhtWZk7t3OC\nQZqonuQEKXUjnTFddSNDgpaA0NemO21tzrZYb79N2T2vBE10yN/h9GxuzXXu2TDU6cZ88DH/RYED\nrXUF2+l266qwC/x6ZoT7rsOYDRWXFFiwlIYsUDMmjtJlzGeysdfVFdiFwG8bKL+WNm/LSuhz00RF\nadcuxI69QA88sHN2rEjPg7X6+o4V571do8Naw3RPlkZObuOIyOdzW6B8uc8yJSEzwvtyHUaTfCxQ\nMyZOhgwZQkNDgwUVcaaqNDQ0MCTSchQDhd+G54FWs3AtbYGWFb/nZmfDHnv0fb77ULj9Qjfm4bwm\n3m19vOUfPDh84HbOOZ0B3tq1XYLbiPcMKCpyWjmzO6PIsFtmeZYjufs5d5mSnVlh1/bq63UYTXKx\nUaXGxMm4cePYtGkTn332Gc3NzWkbWCSibEOGDGHcuHH9es+k5LfQZksLvPQS/POfXVvabryxc+Zf\nuOc2NTktT2t6sHqId2bfjBnwhz/0vkwxGr/N6e7scnw7znpx4VoQI82afeKJzkH6WVlw3nnw0Ufw\n0EOw116MumUPGpoaujxtVJP7Q04OPPccnHRS0P39tszqMmuyqIiyt94i0iIUlaWVvivqx2sdRpNc\nLFAzJk6ysrKYMGEC4Ez/TpM9K7tI57IlvXDjjmbNgg8+CD4WGGP15ptOsOb33Fmz4He/g2OOgXfe\nCT4XbgkHCO5SfeaZnpUhDrxLaYza6cy6DF3OonIJvV8vzhvEtbQ4Ewva251WyWiWnQi0coa85mX1\n9XDKeCqO2e0sAzJ8HJXf/iVllT1bG6w/1mE0ycO6Po0xJtWFay2rrw/ekeCYYzq3kgqMWfPbYgq6\nLuGwebPTlRiYRRoIQsKt1dVHQicPNAx1likLmnUZaKGK1+4LgW223Ndpa9NW38u2BrbmSjt6AAAg\nAElEQVTW9Y4d9Jo7l7I1Gc5Yt19ks2H96b0Ornq1or5JSRaoGWNMqvMLqgL7t953nxMwzJ0Ly5Z1\nBm7eMWvdrbsVuN77/ICjj45+oH5+fsyzEf0mD7QMcgb4d9kLNDBWL147XrivU9gxYtu6Xtsh0kQQ\nYyKwQM0YY9KNd1Hclha4/vrg1rO33+5Z0BCu9S1wXNW/9So7m/rvfKczaNyxA6ZPj6loUQ3kDwh0\n0YZb4DVksH+HnJzgvVK96S1cSOXU67ru1dvSuTVV0L0DIk0EMSYCC9SMMSadhG663t4ODz4Y3Hrm\nLjkRJFLQEK717frrobk5fF5aWsh/7bXOoHHXrpi3rwo3czLoeGZm1y7aUJGWK2lrc8al+Y1xa2uj\nbPEaqk6rYszgMZ0zM6cv6rr4q/fe4bqnbRV/0w0L1IwxJp34bTHV3h7ceuaz5ETYoCFcl93bb0N1\ndfh8zJoFmzeT2dTUGeTFYemayhqfdcZCW7O6a6mqr4epU8OPYWtp6dzQ3u/cq69SNqmMxd9cHP0Y\nsV5u22SMBWrGGJNOotliKiurc5217oKGcF12554bPpgBWLIE5s4lY/fu8NdEa8gQGOmswVG2mqBd\nAgp2ZFH1nd9Q9v7g4OdE6sqdO9cJ1vxa04qKwo9pKyqy4Mr0O1uewxhj0snRRztLdUTagaAnXW7h\nuuw+/DDy87KyYOlSJB4LQLe0BHWxlq12JwyIwMwfwOI1XVsRA61qoctpBFoIwRmLtn59v89cNaYn\nrEXNGGPSiV9gBZ2tQT3tcgt02XmX59i8ufs9Q9euheJi2gdF0R7g3TzerzUrXAthYMmMmprI22d5\n9XS2qzEJlvBATUTuE5FPReQdz7FRIvKCiHzgfv+PRObRGGNSRl+NhfIuz+HXHRpKBJ5+OrquT2/A\nFMh/uBmZfs/Nyoq8fVaALZFhUlDCAzXgfuDEkGPXAzWquh9Q4z42xhiTCKHLcyxd2v3m7u3tsNde\n1L74YnDA6NdiFtr61ZMN5FtanO2vogm+0nCJjOrV1RTeXkjGnAwKby+kenWECR4mJSU8UFPVpUDo\nMs9nAA+4Pz8AnNmvmTLGGNMptLvwmGP8W+2865NlZDjXhfK2+Hm7U72tX+E2kJ81K7qWtnDBV5ot\nkVG9upryp8qp21aHotRtq6P8qXIL1tJMsk4mGKOq9e7PnwBj/C4SkXKgHGDMmDHU1tb2T+76UWNj\nY1qWC6xsqSqdy2Z8hOsu9G747ne92/qWXVoaPm1vd2pg0H99vbPJe6SAqruWtnDBV5rN1qyoqQja\nmB1gZ+tOKmoqbEupNJKsgVoHVVUR8Z02pKpVQBVAcXGxlpSU9GfW+kVtbS3pWC6wsqWqdC6b8RGp\nu9Bvg/KQ1reCP/wBvvvdrteFdqcGAr+5c6GpyWk9i2YD9AFs47aNPTpuUlPCuz7D2CIiYwHc758m\nOD/GGDMw9aS70Kf1ba+//rX78WKBwK+7jeLjKXST+hQUds/RMMdNakrWQO1JYIb78wzgiQTmxRhj\nBq6ezCL1aX0Tv/Fi4bpTb7ih/5bOCLfJfAqpLK3suudoVi6VpZUJypHpCwkP1ETkT8BrwDdEZJOI\nfB/4JXCCiHwAHO8+NsYYk8x8Wt8ydu/u2voWrjt10aLg4O2+++CII5ztquLZ+tWfLXd9qGxSGVWn\nVVGQV9C55+hpVTY+Lc0kfIyaqp4X5lSEEajGGGOSjk8rm++YxnDdqaFaWuD1151N5NetCz8urqf8\nul1TdDxc2aQyC8zSXMJb1Iwxxgwwft2pkXYkWLMmfq1ftuitSTEWqBljjEm80OAtsBabVzzGraXh\norcmvVmgZowxJrnU1zvj0/z274y19SvNFr016c8CNWOMMcll7lxobfU/F2vrV1/thWpMH7FAzRhj\nTHJZujT8pu/W+mUGGAvUjDGmF0Tkv0RkjYi0i0hxyLkbRORDEXlPRL6TqDymrKOP7rqfZ2CvT2v9\nMgOMBWrGGNM77wDfBZZ6D4rIRGA6cCBwInC3iGT2f/aSTE92ArBxZMZ0sEDNGGN6QVXXqep7PqfO\nABar6i5V/Qj4EDisf3OXhHqyE4CNIzOmQ8IXvDXGmDSzD/C65/Em91gXIlIOlAOMGTOG2traPs9c\nX8tuaGDizTezdvZsWkaNorGxkVcffZTDFywgs72dtgULeKO0lJZRoxKd1Zg1Njamxe/Mj5UteVig\nZowxYYjIEmAvn1MVqhrzHsSqWgVUARQXF2uXFfxT0axZ8M47HFlTA3fdRW1tLUc++2zH6UzVjnOp\nznfXhTRhZUse1vVpjDFhqOrxqnqQz1ekIO1jYF/P43HusfTns4dmdkOD7QRgTAwsUDPGmPh6Epgu\nIoNFZAKwH/D3BOepf/jsoVnwhz/YTgDGxMC6Po0xphdE5CzgTmBP4BkRWamq31HVNSLyMLAW2A1c\nrqpticxrvwizh2bemDE2g9OYGFigZowxvaCqjwOPhzlXCVT2b44SLMwemtsOPphhH32UmDwZkwas\n69MYY0zswqx9NmLNmsTkx5g0YS1qxhhjYhdmjbMVtbWU9G9OjEkr1qJmjDHGGJOkLFAzxhhjjElS\nFqgZY4wxxiQpC9SMMcYYY5JU0gZqIvIjEVkjIu+IyJ9EZEii82SMMSZG9fVwzDG2M4ExUUrKQE1E\n9gGuAopV9SAgE5ie2FwZY4yJ2dy5sGyZ7UxgTJSSMlBzDQJyRGQQkAtsTnB+jDHGxMJnL1BjTGRJ\nuY6aqn4sIvOAjUAT8LyqPh96nYiUA+UAY8aMoba2tl/z2R8aGxvTslxgZUtV6Vw208d89gLlrrsS\nmydjklxSBmoi8h/AGcAE4AvgzyJygaou8l6nqlVAFUBxcbGWlJT0d1b7XG1tLelYLrCypap0Lpvp\nQ2H2AuXGG2GvvRKbN2OSWLJ2fR4PfKSqn6lqK/AYcGSC82SMMaa3wuwFamPVjIksWQO1jcA3RSRX\nRAQoBdYlOE/GGGN6K8xeoLz6amLyY0yKSMquT1V9Q0QeAd4EdgNv4XZxGmOMSUFh9gI1xkSWlIEa\ngKrOBmYnOh/GGGOMMYmSrF2fxhhjjDEDngVqxhhjjDFJqk8CNREZ0xfpGmOMMcYMJHEL1ERkpIh8\nX0RqcAb/G2OMMcaYGMQ0mUBEcnAWpj0fmAIMB84ElsaeNWOMMcaYga3XLWoi8kfgfeAE4E6gEPi3\nqtaqanuk5xpjjDHGmO7F0vU5Efg3zkK061S1DdC45MqkperV1RTeXkjGnAwKby9kyZYlic6SMcYY\nk9R6HaipahFwDk535xIRWQYMt4kExk/16mrKnyqnblsdilK3rY5578+jenV1orNmjDHGJK2YJhOo\n6ruqOltV9weuBh4A/iEitieICVJRU8HO1p1Bx3a176KipiJBOTLGGGOSXyxj1K7wPlbVFar6E6AA\nuD7WjJn0snHbxh4dN8YYY0xsLWqX+B1Uh836NEHG543v9njoGDbrFjXGGDPQ2c4Epl9UllaSm5Ub\ndGxwxmAqSysB/zFs5U+VW7BmjDFmQIslUJssItt9vr4Uke1xy6FJC2WTyqg6rYqCvAIEoSCvgJ98\n/SeUTSoD/Mew7WzdaWPYjDHGDGixLHi7WlWnxC0nJu2VTSrrCMwAamtrO362MWzGGGNMV9b1aZJC\nNGPYjDHGmIEmlkDtz9FcJCI3xHAPM0D4jWHLzcrtGMNmTLIRkV+LyLsiskpEHheRkZ5zN4jIhyLy\nnoh8J5H5NMaktlgWvP3fKC/9r97ewwwcfmPYqk6rCuoqNSbJvAAcpKqTcbbTuwFARCYC04EDgROB\nu0UkM2G5NMaktJg2ZY+S9MM9TBoIHcNmTDJT1ec9D18HznZ/PgNYrKq7gI9E5EPgMOC1fs6iMSYN\n9EegZvt/GmPS3SXAQ+7P++AEbgGb3GNdiEg5UA4wZsyYoAk26aKxsTEtywVWtlSVamWzFjVjjAlD\nRJYAe/mcqlDVJ9xrKoDdQI8X/VPVKqAKoLi4WEtKSnqf2SRVW1tLOpYLrGypKtXK1h+BWlSTDvy4\ng3PvBQ7CaZm7RFWt+8AY0y9U9fhI50XkYuBUoFRVA70HHwP7ei4b5x4zxpgei3l5DhEZ5854+kxE\nPhWRR0VkXOB8DyYd+JkP/NXd9P1gYF2s+TXGmHgQkROB64DTVdW7WvOTwHQRGSwiE4D9gL8nIo/G\nmNQXj3XUFuJUTGOBvYGn3GMxEZE84GhgAYCqtqjqF7Gma4wxcfIbYDjwgoisFJHfAqjqGuBhYC3w\nV+ByVW1LXDaNMaksHl2fe6qqNzC7X0SuiUO6E4DPgIUicjCwArhaVXcELrCBuKnNypaa0qVsInKo\nqv6jt89X1a9FOFcJ2CKAxpiYxSNQaxCRC4A/uY/PAxrikO4g4BDgSlV9Q0TmA9cDNwYusIG4qc3K\nlppSuWzuGmfnuV9fAMWJzZExxkQWj0DtEuBO4DacAf+vAhfHId1NwCZVfcN9/AhOoGaMMVETkUI6\ng7NWoAAoVtUNicuVMcZEJx5j1Map6umquqeqjlbVM4GYN2hU1U+Af4nIN9xDpThjPowxJioi8hrw\nDM6H0v9U1anAlxakGWNSRTwCtTujPNYbVwLVIrIKKAJimUFqjBl4tuAM+B8D7Okes0W4jTEpo9dd\nnyJyBHAksKeI/NhzagQQl33tVHUlNobEGNNLqnqmO4P8u8BNIrIfMFJEDlNVWzLDGJP0Yhmjlg0M\nc9MY7jm+nc4974wxJqFUdRvOkkELRWQ0cC5wm4iMV9V9Iz/bGGMSq9eBmqq+BLwkIveral2460Tk\nTlW9srf3McaYeBCRYcBOVb0TuFNEChKdJ2OM6U7MY9QiBWmuabHewxhjektEZonIRmAjsFFE6kRk\nVhR1lzHGJFw8JhMYY0xSEpH/D2cvzhJVHaWqo4BjgZPcc8YYk9QsUDPGpLMLge+q6vrAAffnc4CL\nEpYrY4yJUn8EatIP9zDGGD+qqs0+B5uA9gTkxxhjeiTmQE1EJnVzyfxY72GMMb30sYiUhh4UkeOA\n+gTkxxhjeiQeW0jdLSKDgfuBancqfAdVvT8O9zDGmN64CnhCRJYBK9xjxTiTnM5IWK6MMSZK8Zj1\neRRQBuwLrBCRP4rICTHnzBhjYqSqa4CDgKVAofu1FDjIPWeMMUktHi1qqOoH7gyq5cAdwBQREeCn\nqvpYPO5hjDG94Y5Ru897TEQyRKRMVasTlC1jjIlKPMaoTRaR24B1wHHAaap6gPvzbbGmb4wxvSUi\nI0TkBhH5jYicII4rgMDMT2OMSWrxaFG7E7gXp/WsKXBQVTfbOkXGmAR7EPg38BrwA6ACZyb6me5e\nwsYYk9TiEag9rqoPeg+IyNWqOj/0uDHG9LOvqOokABG5F2em53i/JTuMMSYZxWMdNb9FIy+OQ7pm\ngKleXU3h7YVkzMmg8PZCqlfb8CETs9bAD6raBmyyIM0Yk0p63aImIucB5wMTRORJz6nhwNZYM2YG\nlurV1ZQ/Vc7O1p0A1G2ro/ypcgDKJpUlMmsmtR0sItvdnwXIcR8LzmK4IxKXNWOM6V4sXZ+v4nQj\n7AHc6jn+JbAqlkyZgaeipqIjSAvY2bqTipoKC9RMr6lqZqLzYIwxseh1oKaqdUAdcET8smMGqo3b\nNvbouDHGGDMQ9HqMmrvSNyLypYhs93x96elqMCYq4/PG9+i4McYYMxD0OlBT1W+534er6gjP13Ab\n92F6qrK0ktys3KBjuVm5VJZWJihHxhhjTOLFY8Hb8X5f8cicGTjKJpVRdVoVBXkFCEJBXgFVp1VF\nPT7NZowaY4xJR/FYR+0Zz89DgAnAe8CBsSYsIpk421J9rKqnxpqeSW5lk8p6NXHAZowaY4xJV/HY\nlH2S52s/4DCcVcDj4WqcramMCSvSjFFjjDEmlcVjwdsgqvomcHis6YjIOOAUnO2pjAnLZowaY4xJ\nVzF3fYrIjz0PM4BDgM2xpgvcDlyHs4BuuHuXA+UAY8aMoba2Ng63TS6NjY1pWS6IX9lGDx7Nll1b\nfI8n6rWz35sxxph4iMcYNW8gtRtnzNqjsSQoIqcCn6rqChEpCXedqlYBVQDFxcVaUhL20pRVW1tL\nOpYL4le2W/NvDRqjBs6M0VtPuZWSSbGn3xv2e0t/IjIXOANoBz4FLlbVze65G4DvA23AVar6t4Rl\n1BiT0mIO1FR1TjwyEmIacLqInIwzQWGEiCxS1Qv64F4mxQUmDFTUVLBx20bG542nsrTSJhKYvvZr\nVb0RQESuAn4GXCYiE4HpOBOq9gaWiMjX3b1GjTGmR+LR9fkUoOHOq+rpPU1TVW8AbnDTLwF+YkGa\niaS3M0aN6S1V9S7sPZTOevAMYLGq7gI+EpEPie8kK2PMABKPrs/1wF7AIvfxecAW4C9xSNsYY5KW\niFQCFwHbgGPdw/sAr3su2+Qe83u+jbNNYVa21JRqZYtHoDZNVYs9j58SkeWq+qM4pI2q1gK18UjL\nGGN6QkSW4HwQDVWhqk+oagVQ4Y5JuwKY3ZP0bZxtarOypaZUK1s8ArWhIvIVVV0PICITcLoBjDEm\npen/a+/e46Oqz8SPf56EBBLA+CIoIpDEdl0rilxMvVblJf5q6w103UpNKJZXf/wAbaE/W6vNUrWY\n3W691bZeyk9EhOyirXTVrW7BLPFSb0WuBa+rCaIpYqghgZDr8/vjzITJ5MxkLmcyZ5Ln/XrNi8yZ\nmXO+ZzKcefL9Pt/nq3pRjE+tAp7FCdQ+BiaEPDY+sM0YY+LmRR217wM1IlIjIi8AG4ElHuzXGGN8\nS0RODLk7E3g78PPTwGwRGRr4w/VE4I3+bp8xZmDwYtbnfwUuWF8KbHo7kERrTMKqdlTZLE7jdz8T\nkZNwynPUAQsAVHWniDwB7MIpWXS9zfg0xiQq4R41Ebkp5O4VqrotcGsVkX/2oG1mgIh3wfTg2p11\njXUo2r12py20bvxEVf9BVU9V1dNU9XJV/TjksUpV/aKqnqSqz6WzncaYzJbM0OfskJ9vCXvsa0ns\n1wwgiQRdtnanMcYY40gmUJMIP7vdN4NUIkGXF2t3xtuLZ4wxxvhRMoGaRvjZ7b4ZpBIJuooKiuLa\nHs6GTo0xxgwUyQRqk0XkgIg0AacFfg7en+RR+0yGSyToqpxRSX5Ofo9t+Tn5VM6ojOmYNnRqjDFm\noEg4UFPVbFU9SlVHquqQwM/B+zleNtJkrkSCrrJJZSy/fDnFBcUIQnFBMcsvXx7zrE8vhk6NMcYY\nP/Cijpox3cJzw4CEgq6ySWXULqml69YuapfURny+Wy5askOnxhhjjF94sTKBMcCR3LDgsGMwN2z5\n5cupXVLbL8eb99Q8crJ6d+jGM3RqjDHG+IX1qBnP9HdumNvx2jrbONh+sMe2wrzCuIZO+4PNSjXG\nGBML61Eznunv3LBY9zsid4TvgjS3nkfAV+00xhiTftajZjzT37lhse7Xb5MIbFaqMcaYWFmgZjyT\nbFkNL47nxm+TCGxWqjHGmFhZoGZiV18PF1wAf/2r68PJltWIV/jxCvMKe00k8OMkApuVaowxJlYW\nqJnYLVsGL7/s/BtBrGU1vBJ6vM9u+oyVs1b2W6CYqP7ueTTGGJO5bDKBiU19PaxcCV1dzr9Ll8Jx\nx6W7Vb2UTSrzXWAWLti+iuoKdjfupqigiMoZlb5vtzHGmP5nPWopNmDKMCxb5gRpAJ2dUXvV3AyY\n98Ej/d3zaIwxJjNZoJZCA2Zx8GBvWlubc7+tzbkfIVctXKT34fm9z6ew0e7tsGDRGGNMJvFtoCYi\nE0Rko4jsEpGdIrI43W2K14ApwxDamxYUR69apPfh4Q8f9qqFfUpX0GzBoTHGmGT4NlADOoAbVXUi\ncBZwvYhMTHOb4jJgyjC8+uqR3rSgtjZ45ZWYXh7pfD9t/TTZlsUsHUHzgOlRNcYYkza+DdRUtV5V\nNwd+bgLeAsalt1XxSaoMQ6AURu7+/R63KgFbtoBq79uWLTG9PNL5Hjv0WC9bGVU6guYB06NqjDEm\nbTJi1qeIlABTgdfDts8H5gOMGTOGmpqa/m5aVOVjy7mr6S5au1q7tw3NGkr52PI+23rivfdy/Esv\ncfyIEdSMGpXilqZWMu+DV44deix7W/e6bk9FG5qbm6MGh377rMajubk5o9tvjDGZxPeBmoiMAJ4E\nlqjqgdDHVHU5sBygtLRUp0+f3v8NjGI60zl5x8nxl2Gor4f160GVCdXVlKxY4ctSGLEKvg+Ln1tM\nQ0sDACOGjmDYsGH01+/s7sK7e6yvCU7tsrsvvZvpk7xvQ01NDUUFRdQ11vV6rKigqN/OOxVqamoy\nuv3GGJNJfDv0CSAiOThBWpWqrkt3exKRUBmGkOR9SaAUhl+1dLR0/9zQ0sBd794VMV/L6yT8/l41\nAaywrTHGmOT5tkdNRARYAbylqvekuz39JqwURlZHh68LzMbKLV+rtauViuqKXsFSMAk/+PxgEj6Q\nVGDV38VwrbCtMcaYZPm5R+1cYA5woYhsDdwuSXejUi6BUhiZUAIinmT+gZSEb4VtjTHGJMO3gZqq\nvqyqoqqnqeqUwO3ZdLcr5eIshZEpJSDimQEbKaira6zzdTBqjDHGeM23gdqgFVYKo2bjxqilMDKl\n98ktX2to1lDXfK1o5Uv8HIz2t0zoSTXGGJMcC9QyXCL1wdLxBe+WzP+Dv/+B61CgW1AXzo/BaH/K\nlJ5UY4wxybFALcPFW1Q3nV/w4flaF425KOLzQoO6SPy0wkN48JvqdUwzpSfVGGNMcixQy3DxloDw\nyxd81Y4qZr82O2KvXmhQV1xQ7LqPmFZ4SKBd8fY2ugW/0UqPeNE2t/ps4K/g1RhjTPIsUMtw8dYH\n88P6o8HAZm/r3ph69S450X2yb6TtybRr3lPzegRc856a12fAFa30iFfDzOHBYCSpCF6NMcakjwVq\nA0A8JSAifZGPyhvlad5atAAlUq/e4ucWu77m2ffcJ/tG2p6oxc8tpq2z54zbts42Fj+3OOrros1S\n9WqY2e09C2fFdNNDRG4UERWR0SHbbhGR90XkHRG5OJ3tM8ZkNgvUBhm3odLc7FwOtB7wLG+trzy4\nSIFNQ0uD62ti7QVMtvcquLxVrNuDIgW/2ZKd0DCz23lE6/Hsr5UWTG8iMgH4KrA7ZNtEYDZwCvA1\n4AERyU5PC40xmc4CtUGmbFIZy7/yc4pbhnZ/wY/MHUl7V3uP5yWTt9ZXHlysw3PB18QyYSKdkyQi\nlR7p1E7X57vllwWDM7ldmLNuTq/zGJU3ynVfxQXFTk/qNa9SdsNy+Otfkz8hE497gZugx3j0TGCt\nqraq6ofA+8AZ6WicMSbz+XYJqQGhvh5mz4bHH/fV8k9la3dS9pt2WLAQbr2frNvd4/VE89ai9YBV\n7aiiua05rn2tvmq164LqocN80YLDWHuZCvMKXXvPCvMKo77Obamo8rHl/Oydn7kGa9lhnSvhS2aF\n56Adaj9E3pA88nPyI78Hy5bByy87/95/f98na5ImIjOBj1V1m7PiXbdxwGsh9/cEtrntYz4wH2DM\nmDHU1NSkprFp1NzcPCDPC+zcMlWmnZsFaqnkxy/P4FqiXV3da4gWFRS59vKE91jFumZlpP0BlK8r\n77UtGAi5BUlFBUUxrZnpxSSJ+75+H9/+j2/36F3Mycrhvq/fF/M+QkXqUQvfHkv+WUNLA4V5hd3P\nK8wr5L6v3+e8By6/Uz/9YZDJROR5wO3NrAB+jDPsmTBVXQ4sBygtLdXp06cnsztfqqmpYSCeF9i5\nZapMOzcb+kyV8C9PvwxJha4lGlhDtK8SH/EOK0YqWBtptuKI3BHc9/X7XNtwyYmXUPKLEuasmwPA\n6qtWu06YiDQ0OCpvVMTctfDtACtnrewxg3blrJV99shFKs8RqScuvNxILMGkID0C2ZaOliMPuvxO\njTdU9SJVPTX8BnwAnABsE5FaYDywWUSOAz4GJoTsZnxgmzHGxM0CtVTx45dnMHgMriXa1gYrV1J2\nzIyoJT7irb3WXTKkcwSikK2Ri9aCE6i4lRmZO3kuq7at6lUuY/TPR8c8YaCptalXztecdXO46LGL\nXINPIO5F1COV5zjccTimGnd95ewJ4jocWlFdEfF36ps/DAYoVd2hqseqaomqluAMb05T1b8CTwOz\nRWSoiJwAnAi8kcbmGmMymAVqqRDty7O+Hi64ID1fpKHBY1AgiIxW4iOeYcVgL9WcdXOguZnV66Ar\nSt0vOBKohLfh2fee7RUAtXW20dDS0CPoktsl4szMtq62XkGOolR/WO1Z4d9I78/B9oPMnTy3zxp3\nbj2QwRUZiguKI/ZE7m7cHfV3atJDVXcCTwC7gP8CrleNMA5ujDF9sEAtFaJ9eYbmrfWjqh1VlIx8\nmKxb2ihZAlWTAg+0tcErr0R9bbRZl6GzFbN/mk35uvIjvVQFMP9yGNXi+nKgdw9T1Y4qRv98NHK7\nRMxzCxWt+Gsi6hrrWPSHRXGV+YjWI/bgpgeByEO24F60ePVVq9FbldoltdFXZnj11SN/EATF8Ds1\n3gr0rH0Wcr9SVb+oqiep6nPpbJsxJrNZoJYKkb48X3ghLXlr3TlU+e2oQN3RMH92PlXb14AqbNkS\n+cX19VS+Moz8IXk9Ngfzx4LDhwBd2tXr5YdyAYX89l4PcdSQo5g7eS4V1RVk3Z7F6J+P5rr/uK7P\numWp9uCmB+Mq89FXkdnQnr9IgV+0Hk23HrecrBya25rJmrWNknuLj/wug7dov1NjjDEZwwK1VNiy\npeeXZvB2/vlpyVtLan3PZcsoe/I9ljec22sIz21o0s3+fFj+h2wnZy3w+jVXreG7f/ddVmxZ0R0U\nNbQ00NHVkehppsyh9kPM/f3cqOuS9lXCI9jzl0h9t/Aet8K8QkSkxxBwf9WMM8YY078sUOsP9fVw\n1llpS/pOuHRFyMzVsof+RO3s13r0+MRa+qKoEcq2dlK5eRRFBUXsbtxNRXUF95jIZkoAAB4SSURB\nVLx7T68lm/yqUzujBkVus1YjSWR1AjgyyWFE7ohe71ui+XVerUXqiXTmbxpjjE8NzkCtv78Qli2D\n11/vPRzaT71qsVT2d9XHzNVYVhjIz8mnct4aqravYf45n/UYUmzpipK85mOH2g9Rvq68R2AT2usV\ni2hBbqJLcAULCscaeKVzNQdXacrfNMYYPxucgVqqvhDcAsBgrxT0nmAQzFtLcdDYV500VzGUfbjk\nxEu6Zye6Kcwr7J7lGEtR10xT11hH+bpyRv98NFU7qrrzzNZctYahWUOjvjZS3TdwFodPZAmuUXmj\n4gq8khoS95pf6w4aY0ya+TZQE5Gvicg7IvK+iNzs2Y69+kJwC8rcAsDQXqncXFi0qHfeWop7Edxm\nFfa5gHcfZR+qdlSxatuqiLMue1TOx319y0wQvtyTm4aWhh4BUdmkMn7w9z+IuXctVNWOqoiTKYI9\naZECbyCuwMuL1Rw848e6g8YY4wO+DNREJBu4H/g6MBH4pohM9GTnXnwh1NfD6afDSy8deb1bALh1\nKzz0UM9eqQcfhO3bI7/GSyHBZI9ZhbEs4B2l7EPVjirm/n5u1B6yYPASLHWRqeafPp/crJw+nxce\nEF005iJql9RG7HHc37LfdXu03qxgL1ykwDvSPusa61x71RIeEvdSmvM3jTHG73wZqAFnAO+r6geq\n2gasBWYmvVevqrjffLOzL9Ujr3cLAMvLneeEUoVrr3V+TnUvwrJlTjA5bVrfPX/hIsxcrXrsB8x/\nZn7EdSxDHWo/1F3qIlM9sfMJRnbE9t+krrGuOzfs+b3PA/EFQ1U7qqK+VwdaD/TotQsv5xEtwHIb\nAk1oSNxrac7fNMYYv/NroDYO+Cjk/p7AtuS4Ded1dMT3hVBfD1UhX3idnU7gFh4APvII7Nzpvo9d\nu2DbNvegcdu2xHPWgr0TZ599ZP+qzvZbbnGes3Ur/OY3CffiDcRcs2gaWhpokNaYnx+61mfVjirX\nPD5BuOTES3psCyb2R9Pe1R61xy3SGqvgPgSa0JC4l/rK37SivcYYw5B0NyAZIjIfmA8wZswYampq\noj7/9A0bGBn+l3t7O03r1/NmH68NOulf/oXjOjuPfPW2tdG1ejWI9Ih6tbUVRBBVuoYMoWXsWPI/\n+ggBurKz6TrzTLI6Onq8pqu9nUOzZjG8ro5PFizgvSVLaG5u7vO8erTt9dcBODhrFvkh++967DGa\n3niDIU1N5Hd1Oe1ob6c+cBw3uQ0NTPzpT9l16620jXKG3dKSv5Ru0ZcqddXa1cqipxbRqq2uS1g9\nsvkRRjWP4qIxFwFw42s3xhQA727cHfHzMI5xfP+L36fybfceMbfXjmMcj0559MiGBvr8vMXzmYzm\nxHvvZWzgM9o1ZAj1l17a+7PowXGMMSaT+TVQ+xiYEHJ/fGBbD6q6HFgOUFpaqtOnT4++1/fec/6t\nr4cvfAEOH4a8PEa+9BLTjzuu71bV10N1da/NWeG9AYCEDHlmdXQw/KOPetzP6uhd2DWro4MRdXWg\nyrinn2bcd7/L5xUVHP3HP0Jf7auvh+ef7747ora2VxsLdu3qdbxx69cz7qGH3Pe/aBGLxm1n+far\n6RQlW7LJz8nnYPvB6G0xABzoPBDxsdauVtbUr+GOa+4AYO8Le2PaZ1FBEeGf86odVVRUV7C7cTdF\nBUUU5hW6Tkhwe20iampqkt9PfT2sX+/0aBPDZ9EYYwYpvwZqfwZOFJETcAK02cC1nu3dLTfs/vtj\ne11nhNyswkL4299gwQJnuPHhh6HdZd2kUNnZTh7b6tXO65qbnZ/B2cfFF1MQqX319TB7Njz+uPPF\ndvPNvYePYuG2//p6uPJKFh3zBg+eAYgTdHZqJwfbD5It2THlqJnogjltRQVFZEmW6xJcodzyx4JD\npsHeuLrGOnKzc8nJyqG9qz3qa9Mq2qziWP4vGmM8197ezp49ezh8+DAFBQW89dZb6W5SSvT3uQ0b\nNozx48eTk9P3xDQ3vgzUVLVDRG4A/ghkA4+oaoSErzhFmlCwdGnff8m/+qr79lNOgfffd754Vqxw\nArC+gjRwvphWrXJ+XrHC6V0InXwQHGJ1a1/oRIHHHnNuiQjUcuvRK9M5nMpDzSyfiuuwX18BhYld\nMKctGkEoKiiickZlr/wxt5zBts42CvMKGZE7oruXze21aWWLyRvjO3v27GHkyJGUlJTQ3NzMyJEj\n092klGhqauq3c1NVGhoa2LNnDyeccEJC+/BloAagqs8Cz3q+40gTCqZNg82bowdrkRa6XrQIgtF5\nayDxPDvbCcSGDXOCr9Y+EtKjPd7e3rN9wQkBwYkCV10Vfd99qCrYzfyn/zeHOpyVAuqym5l/OXRG\nmGqiKCM6smgeYgFbqhUXFFO7pDbi45FyBve37Oezmz7rtT18mDRtAZwtGm+M7xw+fJiSkhJEEkjM\nNa5EhMLCQvbt25fwPvw66zN13P6Sb293Ap5Ea6o98oj7MA44xwo/Xrw6Opzj3Byo+1te3vN4TU2R\nX5vV96+44oym7iAt6FBu9Nc0Z1uQlmpus0PDxVv+w1dLRhljfMeCNO8l+54OvkAtvD7YJ584vV7g\nBFxnnx29ZEX4igTLlkUf5uzq6l1LLVFr1jgTBiKV/Yh0/D7UFSTQFvu/HLe+Fm0PL+OhKKu2rYoa\nSMVTC81XS0YZY4yJyeAL1MKFDoW2tcFrr/XsWXMLzEKLxb74YmJJ/Ino7IRvfMPTXVZNspgrlbIl\nu0eNsmjLSrktx9VXIBVPLTRfLRlljBkY3JZTTEJ2djZTpkzpvtWGVTAI9cknn3D11VcDzmz0yy67\nLK5jTZ8+nU2bNiXT3H7h2xy1fhE+sSAYcD3yyJHk/dDA7J/+qeeST0uXOmt1vvde8sObsfrb3zzd\nXcUMUJdITRTyW+HgME8PN6jk5+S7Bk2hszRjERpIRcoxiyXPrKigyHXiQr8uGWWMGVhCvyM9mLGd\nl5fH1q1bY3ru8ccfz+9+97ukj+l3g7tHzW1iAThB17JlsGGDszZnMDC75ZbeZT3cct5CDR2amrZ7\nZHeEYU8FhsVagUOh8CDk9i4N1z88Gln2QpY4/6XGDB3TI0ir2lFFyS9KmLNuDnlD8ijMK4x5n8FA\nKtkcM18sGWWMGThSvV51QG1tLeeddx7Tpk1j2rRpvBKYHV5bW8upp57a6/kHDx5k3rx5nHHGGUyd\nOpWnnnoKgJaWFmbPnk1paSlXXnklLS0tvV7rR4M7UIsUZAU/dP/4j0e2dXQ4OWLhZT2ee87Je3NL\n2r/uOpg3LyVN90pRo/v24kbYHz2lCoD8NlizDj67Ex55Coo/B7S79FpyAgFg1EBMIbuzj+d4IBiA\nFRcUs7B0YY+hxjVXrUFvVfRWpfMnneitytqz1gJQ8osS5HahfF15d4DV0NJAS0dLTMFaaCCVbI5Z\nKpaMCgagwTVObWKCMYNICtarbmlp6R72vPLKKwE49thj2bBhA5s3b+bxxx/ne9/7XtR9VFZWcuGF\nF/LGG2+wceNGfvjDH3Lw4EEefPBB8vPz2bRpE7fffjtvvvlm0u3tD4N76DNYImDRIqeOWWjQ1t4O\nodG224SB4AfzhRfce+Yeeyxy/lpuLgwZAofSu25mZTXMv7znLM/8Nmd7xQyoO9rlRYGgqLjReV7Z\nDud+2Y4jP1dNzqJ8VlfiCXAKC9+AB56DIUuhMzvC8wQ6U/UpVrrb36Vd5Gbn0tzWzEObHqKooIjV\nVznFiSuqKyhfV95dCLi4oJgp+VPY8NmGiEOch9oPkTckj/yc/B7PycnK4aihR7G/ZX+v8hle5JjF\nOkwaC7diu8H1Sn1Vs80Y471kapJG4Tb02d7ezg033MDWrVvJzs7m3XffjbqP9evX8/TTT3PXXXcB\nTtmR3bt38+KLL3YHeaeddhqnnXZawu3sT4M7UAty61lzWeKpl0CxWMKWZuoWbZJBsGzH5ZfDM8/E\n3laPBQOrihnOMGhRWPAVHsSJwoJAABV1v9u6+NPxBFY2iLNRIUEaRK7nFq9Yqv/3ENbuts627qWZ\n6hrrmPfUPFS1ewWA4GoNdY11fRaxBafW2eqrVlOx/kfsbvqYopHjqfzqzyIGOX7LMYvWw2eBmjED\nXD+uLnLvvfcyZswYtm3bRldXF8OGRU+eVlWefPJJTjrpJE/bkS6De+gzaMuWnmU6otUeGz7c+Usi\nWN7j/PMhuCxEIstDpDFICyrbAbW/gK7bnX9De8iWP+P0nIk6w5qr1/UdpAU98BzM+B/6HpZUkC7n\n3+LPnaHU0GMURxiejVdokJaTlRNXnpibts62Hss0xauooIiySWXU/s8VdC3LovaDK6IGOH7LMbNZ\npMYMYv24ukhjYyNjx44lKyuL1atX0xlpKceAiy++mF/96ldooDTWlsDo2fnnn8+//du/AfCXv/yF\n7du3e97WVLBALSj0r4NoPWGHDh0Zhw/v+o1l2agUq5oEJUsg61bn36pJye2vbAfU3gtdvy6k9pdZ\n3UFcTObO5fnVypoLf01xS5RJFQJ5HU6A1h0o5uY6Q9JTplBZ7QzHxitYlyxbeo+btne1MyJ3RNRy\nGakkiBNgxZGMm4ocs2TEU2zXGDPAhNckDd5SsOrIokWLWLVqFZMnT+btt99m+PDhUZ+/dOlS2tvb\nOe200zjllFNYunQpAAsXLqS5uZnS0lJ+8pOfcPrpp3ve1lQQ9aoYa5qVlpZqwvVQ6uvhC1+Aw4dj\ne35eHnzwAfzoR84i6j55D6smueebLX+G+AKscHPnwqZN8RXaBRg9GvbtcwKu3/yGqsUXMn/0KxHz\ntoo/dwK1bsH3+bjjustS1H1eh+BeUgTomT8nF1F2zwaybs9yrVEmCKuvWk35uvL4zitGgkQ87oLS\nBTxw6QM98yNzc+E73/H9ouQ1NTVMnz69V44aRC5Jkioi8qaqlvbLwVIsqWuYjwU/LwPRQDu3t956\ni5NPPhno3/Uw+1s6zi30vQ2K9fplPWoQuUxHJMFx+D/8wTdBGjh5ZuFLPx3KdbYn5amnwC15U8TJ\nsYtkzBg466zuHqOyh/7E8vPujPj0XqVCQmYRlU0qo3ZJLfrUFFavc58NKoHcNg0O4a6vB6L3/JRN\nKot5CDS8Zy43O5ecLPfh7qFZQ1lQuqC7xy742uKCYlZftdoJ0iIl46ZoirvX/NbDZ4wxA5FNJoC+\na6GFa2vrvb6nSNqDtkg10SJtj9mhQ+7DuqqRc+yys6G0FFatOpLz19lJ2dqdVJxY7J4UH56L5pbv\nsGULZUAZIcVfP6+j6ABUPh/Sc5ib61TLxsntcuv5CeZ23ff1+1yL0A7PGc6h9kPdsy+BXsVmg9vq\nGut6zPosH1vOHZfe4f7eBPVjMm6qeDmL1BhjTG8WqMGRMfWpUyHGisi0tfX+ko0lWAsGLSlYdqqo\n0b2cRqRaaVx+uVPUN9qQb05OYqsudHY6w8LQc4muhx6i8uk7mL/tjp6BU6AkSA/XXef0MEXQHSS4\n/d5CgrxgIOFW0T+Wx8OPGcu2mpqaiO3u1o/JuMYYYzLT4A7U6uth9mz45S/he99zite61X9xCwTC\nA61Ye9NSuC5otJporp55pu+ZqslMkHA7164uyn5UBf++nBv/cCOftn5K0QGhckNX7zy6WGfExpC8\n2lfPT1p6hlKQdGuMMWZgGdw5asE1ysrKei60Hi58dsvChdFLePQlN9fpffNYdzmNz4+U0+hzIkEq\nZqoOGxZ96axduyg7ZgZrz1pL161d1P73ae5tnDDB+7YZY4wxGWTwBmqhZRF27oxvrbJXX02uZ6yt\nLWX5bJFqovWrtrbeAWBW1pHgNienZ1Dcj9O8jfGKiNwmIh+LyNbA7ZKQx24RkfdF5B0RuTid7TTG\nZLbBG6hFS+TuS3iB3OxI6xuFCdYGO+WU+NqaDieddOT84tXV1fu9Dd0WmN2Yu39/cm00Jv3uVdUp\ngduzACIyEZgNnAJ8DXhAxKWYnzEZLhVr/YoIN954Y/f9u+66i9tuuy3p/QLs27ePM888k6985Su8\n9NJLEZ/3ne98h12BFYdKSkr47LPPYj7Go48+yg033JB0W0MNzkAtvCxCUDzlEcIXo41FW5tTMyve\nemTJSmSYdsgQZ61TVZgype/nDxvm3isWHCrODasb0tlJ8WOPxd8uY/xvJrBWVVtV9UPgfeCMNLfJ\nGE8F6yjWNdahaPdav8kGa0OHDmXdunVxBUexqq6uZtKkSbz88sucd955EZ/38MMPM3HiRM+Pn6jB\nOZkgWt20WMojRAr0YtHaGv9rkpXIMO2uXU7AetxxyQ9BRpjdeFR/B6zGeO+7IvItYBNwo6r+DRgH\nvBbynD2Bbb2IyHxgPsCYMWNimy2cYZqbmwfkecHAO7eCggKampoA6Ozs7P7ZzS0bbnFd6/eWDbdw\nRckVCbdhyJAhzJ07l3/913/lJz/5Ca2trbS2ttLU1ERdXR3XX389DQ0NjB49mgceeIAJEyawYMEC\nRo4cyZYtW/j000/56U9/yqxZs3rsd/v27fzwhz+kpaWF119/nerqan784x+zefNmWlpamDlzJhUV\nFQBccskl3HHHHUybNg1Vpbm5maFDh7J27Voeeugh2tvbKS0t5Z577iE7O5s1a9Zw9913U1BQwKRJ\nk8jNze313h0+fDjxz4qq+u4G3Am8DWwHfg8c3ddrTj/9dI3ZlCmR+n6c25Qp0V+/cKFqbm7P1+Tm\nqi5aFN9xQm/DhrkeauPGje7Hi/UWfi6xtsntfDy2cePGlO4/nezc+gewSVN7LXoe+IvLbSYwBsjG\nGZmoBB4JvObXQHnIPlYAV/d1rLiuYRnET58Xrw20c9u1a1f3zwcOHIj6XLlNlNvodZPbJKk2DB8+\nXBsbG7W4uFg///xzvfPOO/XWW29VVdXLLrtMH330UVVVXbFihc6cOVNVVefOnatXX321dnZ26s6d\nO/WLX/yi675Xrlyp119/ffe5NTQ0qKpqR0eHXnDBBbpt2zZVVb3gggv0z3/+s6qqFhcX6759+3TX\nrl162WWXaVtbm6qqLly4UFetWqWffPKJTpgwQT/99FNtbW3Vc845R6+//vpexw59b4NivX75dehz\nA3Cqqp4GvAvc4uneIyWvB2999SDFWv+qr+OE3lpaeh+nvp4pixfDiy/23XsXzH/r61y2bIltKDPD\nquQbkwqqepGqnupye0pV96pqp6p2Af+PI8ObHwOhU5bHB7aZdKqvd4pg2zXNE6lc6/eoo47iW9/6\nFr/85S97bH/11Ve59tprAZgzZw4vv/xy92OzZs0iKyuLiRMnsnfv3piO88QTTzBt2jSmTp3Kzp07\nu/PS3FRXV/Pmm2/y5S9/mSlTplBdXc0HH3zA66+/zvTp0znmmGPIzc3lmmuuSeCMo/NloKaq61W1\nI3D3NZwLnX/01yzFZcso2LHDubiEHsct0IqnUKpb+yPkkcU0ucKYQUhExobcvRKnpw3gaWC2iAwV\nkROAE4E3+rt9JkywHJNd0zxROaOS/Jz8HttCV3xJ1pIlS1ixYgUHDx6M6flDQ0pCOZ1VUFFRwZQp\nU5ji8p354Ycfctddd1FdXc327du59NJLORyl+LuqMnfuXLZu3crWrVt55513PJvk0JdMyFGbBzzu\n9sBAzu/IbWjgzBUryFalc8UKXp8xg7ZRo5wH77038gsTfA9O37CBkS69hE3r1/Nmit7XgZbfEcrO\nbVD4uYhMwVl1thb4PwCqulNEngB2AR3A9aoa44wjkxKh5ZhWroSlS92Lm5uYxbOiSyJGjRrFN77x\nDVasWMG8efMAOOecc1i7di1z5syhqqoq6oQAgMrKSior3QPHAwcOMHz4cAoKCti7dy/PPfcc06dP\nj7ivGTNmMHPmTL7//e9z7LHHsn//fpqamjjzzDNZvHgxDQ0NHHXUUfz2t79l8uTJCZ+3m7QFaiLy\nPOD2P6VCVZ8KPKcC50LnOo1EVZcDywFKS0s12puccRYt6v4xW5VzqqtTu/7je++5bh4JTE/RIWtq\naqL+x8hkdm4Dn6rOifJYJU7emvGD8Fn6GbSerp+lekWXG2+8kV//+tfd93/1q1/x7W9/mzvvvJNj\njjmGlVGWGOzL5MmTmTp1Kl/60peYMGEC5557btTnT5w4kTvuuIOvfvWrdHV1kZOTw/33389ZZ53F\nbbfdxtlnn83RRx/t2nuXLAl2EfqNiFyH8xfqDFU91MfTKS0t1U2bNqW8Xf2ivh6+8IWea3Dm5cEH\nHwyovwIH8he+nVv/EJE3VbU03e3wwoC6hoVI++clhdfTtJ+bx9566y1OPvlkAJqamhg5cmSaW5Qa\n6Ti30Pc2KNbrly9z1ETka8BNwBWxBGkDTjLFeI0xxhxh11OT4XwZqOFMbx8JbAgszfJQuhvUr2Kd\nVWqMMSY6u56aDOfLyQSq+nfpbkNahcweHWhd68YY069szeC4qCoiku5mDCjJppj5tUfNGGOMMf1o\n2LBhNDQ0JB1YmCNUlYaGBoYlunY2Pu1RM8YYY0z/Gj9+PHv27GHfvn0cPnw4qeDCz/r73IYNG8b4\n8YmXg7VAzRhjjDHk5ORwwgknAE7azdSpU9PcotTItHOzoU9jjDHGGJ+yQM0YY4wxxqcsUDPGGGOM\n8SnfrkwQLxHZB9Slux0pMBr4LN2NSBE7t8zkp3MrVtVj0t0IL9g1LCPZuWUmv5xbTNevAROoDVQi\nsmmgLJETzs4tMw3kczPeG8ifFzu3zJRp52ZDn8YYY4wxPmWBmjHGGGOMT1mg5n/L092AFLJzy0wD\n+dyM9wby58XOLTNl1LlZjpoxxhhjjE9Zj5oxxhhjjE9ZoGaMMcYY41MWqPmYiHxNRN4RkfdF5OZ0\nt8crIjJBRDaKyC4R2Skii9PdJq+JSLaIbBGR/0x3W7wkIkeLyO9E5G0ReUtEzk53m4w/2fUrc9n1\ny18sR82nRCQbeBf4X8Ae4M/AN1V1V1ob5gERGQuMVdXNIjISeBOYNRDOLUhE/i9QChylqpeluz1e\nEZFVwEuq+rCI5AL5qvp5uttl/MWuX5nNrl/+Yj1q/nUG8L6qfqCqbcBaYGaa2+QJVa1X1c2Bn5uA\nt4Bx6W2Vd0RkPHAp8HC62+IlESkAzgdWAKhqWyZc5Exa2PUrQ9n1y38sUPOvccBHIff3MIAuBkEi\nUgJMBV5Pb0s89QvgJqAr3Q3x2AnAPmBlYFjkYREZnu5GGV+y61fmsuuXz1igZtJGREYATwJLVPVA\nutvjBRG5DPhUVd9Md1tSYAgwDXhQVacCB4EBk3tkTDzs+pVxMvb6ZYGaf30MTAi5Pz6wbUAQkRyc\ni1yVqq5Ld3s8dC5whYjU4gz3XCgia9LbJM/sAfaoarD34Hc4Fz5jwtn1KzPZ9cuHLFDzrz8DJ4rI\nCYGkx9nA02lukydERHDyBN5S1XvS3R4vqeotqjpeVUtwfmf/rarlaW6WJ1T1r8BHInJSYNMMYMAk\nUBtP2fUrA9n1y5+GpLsBxp2qdojIDcAfgWzgEVXdmeZmeeVcYA6wQ0S2Brb9WFWfTWObTGy+C1QF\nvnw/AL6d5vYYH7Lrl/GpjLx+WXkOY4wxxhifsqFPY4wxxhifskDNGGOMMcanLFAzxhhjjPEpC9SM\nMcYYY3zKAjVjjDHGGJ+yQM0YY4wxxqcsUDNpJyLNHu7r9yKyVUTeF5HGwM9bReScwOOjRaRdRBZ4\ndUxjzOBm1zCTSlZHzaSdiDSr6giP9zkd+IGqXha2fSFwLdClqhd4eUxjzOBk1zCTStajZnxDHHeK\nyF9EZIeIXBPYniUiD4jI2yKyQUSeFZGrEzzMN4EbgXEiMt6zxhtjBj27hplUsEDN+MlVwBRgMnAR\ncKeIjA1sLwEm4izdcnYiOxeRCcBYVX0DeAK4xoM2G2NMkF3DjOcsUDN+8hXg31W1U1X3Ai8AXw5s\n/62qdgUW1t2Y4P6vwbm4AazF+cvUGGO8Ytcw4zlblN0MJt8EjhORssD940XkRFV9L52NMsaYGNk1\nbBCyHjXjJy8B14hItogcA5wPvAH8CfiHQJ7HGGB6vDsWkb8HRqjqOFUtUdUS4F+wv0iNMd6xa5jx\nnAVqxk9+D2wHtgH/DdwUGCZ4EtgD7ALWAJuBxjj3/c3A/kM9iV3kjDHesWuY8ZyV5zAZQURGqGqz\niBTi/IV6buACaIwxvmfXMJMoy1EzmeI/ReRoIBdYZhc4Y0yGsWuYSYj1qJmMJSK/B04I2/wjVf1j\nOtpjjDHxsGuYiYUFasYYY4wxPmWTCYwxxhhjfMoCNWOMMcYYn7JAzRhjjDHGpyxQM8YYY4zxqf8P\n9g1k7hW0ptMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc43e612f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot 4 scatter plots together\n",
    "\n",
    "# log_TA / NI_to_TA\n",
    "# log_TA / NPL_to_TL\n",
    "# log_TA / Equity_to_TA\n",
    "# log_TA / ROA\n",
    "\n",
    "first_indx = [0, 0, 0, 0]\n",
    "second_indx = [1, 3, 2, 10]\n",
    "\n",
    "X_train = df_train[state_cols].values\n",
    "y_train = df_train.defaulter.values # .reshape(-1,1)\n",
    "\n",
    "num_plots = 4\n",
    "if num_plots % 2 == 0:\n",
    "    f, axs = plt.subplots(num_plots // 2, 2)\n",
    "else:\n",
    "    f, axs = plt.subplots(num_plots// 2 + 1, 2)\n",
    "    \n",
    "f.subplots_adjust(hspace=.3)\n",
    "f.set_figheight(10.0)\n",
    "f.set_figwidth(10.0)\n",
    "    \n",
    "for i in range(num_plots):\n",
    "    if i % 2 == 0:\n",
    "        first_idx = i // 2\n",
    "        second_idx = 0\n",
    "    else:\n",
    "        first_idx = i // 2\n",
    "        second_idx = 1\n",
    "        \n",
    "    axs[first_idx,second_idx].plot(X_train[y_train == 1.0, first_indx[i]], \n",
    "                                   X_train[y_train == 1.0, second_indx[i]], 'r^', label=\"Failed\")\n",
    "    axs[first_idx,second_idx].plot(X_train[y_train == 0.0, first_indx[i]], \n",
    "                                   X_train[y_train == 0.0, second_indx[i]], 'go', label=\"Non-failed\") \n",
    "    \n",
    "    axs[first_idx, second_idx].legend()\n",
    "    axs[first_idx, second_idx].set_xlabel('%s' % state_cols[first_indx[i]])\n",
    "    axs[first_idx, second_idx].set_ylabel('%s' % state_cols[second_indx[i]])\n",
    "    axs[first_idx, second_idx].set_title('Failed banks vs non-failed banks')\n",
    "    axs[first_idx, second_idx].grid(True) \n",
    "    \n",
    "if num_plots % 2 != 0:\n",
    "    f.delaxes(axs[i // 2, 1])\n",
    "    \n",
    "# plt.savefig('Failed_vs_nonfailed_rr_plot.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['log_TA',\n",
       " 'NI_to_TA',\n",
       " 'Equity_to_TA',\n",
       " 'NPL_to_TL',\n",
       " 'REO_to_TA',\n",
       " 'ALLL_to_TL',\n",
       " 'core_deposits_to_TA',\n",
       " 'brokered_deposits_to_TA',\n",
       " 'liquid_assets_to_TA',\n",
       " 'loss_provision_to_TL',\n",
       " 'ROA',\n",
       " 'NIM',\n",
       " 'assets_growth']"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "state_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['log_TA', 'NI_to_TA', 'Equity_to_TA', 'NPL_to_TL', 'REO_to_TA', 'ALLL_to_TL', 'core_deposits_to_TA', 'brokered_deposits_to_TA', 'liquid_assets_to_TA', 'loss_provision_to_TL', 'NIM', 'assets_growth']\n",
      "Len state_cols =  12\n"
     ]
    }
   ],
   "source": [
    "# Column 'ROA' is redundant, it is the same as NI_to_TA, so remove it\n",
    "state_cols = [c for c in state_cols if c != 'ROA']\n",
    "\n",
    "print(state_cols)\n",
    "print('Len state_cols = ', len(state_cols)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# make the train and test datasets\n",
    "choice = 0  # selection of predictors. Add tangible equity and assessment base as predictors\n",
    "predict_within_1Y = False # True\n",
    "\n",
    "if choice == -1: # only state cols\n",
    "    cols = state_cols \n",
    "elif choice == 0:  # original variables\n",
    "    cols = state_cols + MEV_cols \n",
    "\n",
    "trX = df_train[cols].values\n",
    "teX = df_test[cols].values\n",
    "num_features = len(cols)    \n",
    "\n",
    "if predict_within_1Y == True:\n",
    "    trY = df_train[['default_within_1Y','no_default_within_1Y']].values\n",
    "    teY = df_test[['default_within_1Y','no_default_within_1Y']].values\n",
    "else:\n",
    "    trY = df_train[['defaulter','non_defaulter']].values\n",
    "    teY = df_test[['defaulter','non_defaulter']].values\n",
    "\n",
    "num_classes = 2\n",
    "num_components = len(cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>term_spread</th>\n",
       "      <th>stock_mkt_growth</th>\n",
       "      <th>real_gdp_growth</th>\n",
       "      <th>unemployment_rate_change</th>\n",
       "      <th>treasury_yield_3m</th>\n",
       "      <th>bbb_spread</th>\n",
       "      <th>bbb_spread_change</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>term_spread</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.002993</td>\n",
       "      <td>-0.145941</td>\n",
       "      <td>0.299972</td>\n",
       "      <td>-0.633991</td>\n",
       "      <td>0.392349</td>\n",
       "      <td>-0.465767</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stock_mkt_growth</th>\n",
       "      <td>0.002993</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.148941</td>\n",
       "      <td>0.461947</td>\n",
       "      <td>-0.081915</td>\n",
       "      <td>0.417379</td>\n",
       "      <td>-0.762702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>real_gdp_growth</th>\n",
       "      <td>-0.145941</td>\n",
       "      <td>-0.148941</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.825802</td>\n",
       "      <td>0.041596</td>\n",
       "      <td>-0.820518</td>\n",
       "      <td>0.385007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unemployment_rate_change</th>\n",
       "      <td>0.299972</td>\n",
       "      <td>0.461947</td>\n",
       "      <td>-0.825802</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.034355</td>\n",
       "      <td>0.881223</td>\n",
       "      <td>-0.657093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>treasury_yield_3m</th>\n",
       "      <td>-0.633991</td>\n",
       "      <td>-0.081915</td>\n",
       "      <td>0.041596</td>\n",
       "      <td>0.034355</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.272072</td>\n",
       "      <td>0.290414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bbb_spread</th>\n",
       "      <td>0.392349</td>\n",
       "      <td>0.417379</td>\n",
       "      <td>-0.820518</td>\n",
       "      <td>0.881223</td>\n",
       "      <td>-0.272072</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.716249</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bbb_spread_change</th>\n",
       "      <td>-0.465767</td>\n",
       "      <td>-0.762702</td>\n",
       "      <td>0.385007</td>\n",
       "      <td>-0.657093</td>\n",
       "      <td>0.290414</td>\n",
       "      <td>-0.716249</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          term_spread  stock_mkt_growth  real_gdp_growth  \\\n",
       "term_spread                  1.000000          0.002993        -0.145941   \n",
       "stock_mkt_growth             0.002993          1.000000        -0.148941   \n",
       "real_gdp_growth             -0.145941         -0.148941         1.000000   \n",
       "unemployment_rate_change     0.299972          0.461947        -0.825802   \n",
       "treasury_yield_3m           -0.633991         -0.081915         0.041596   \n",
       "bbb_spread                   0.392349          0.417379        -0.820518   \n",
       "bbb_spread_change           -0.465767         -0.762702         0.385007   \n",
       "\n",
       "                          unemployment_rate_change  treasury_yield_3m  \\\n",
       "term_spread                               0.299972          -0.633991   \n",
       "stock_mkt_growth                          0.461947          -0.081915   \n",
       "real_gdp_growth                          -0.825802           0.041596   \n",
       "unemployment_rate_change                  1.000000           0.034355   \n",
       "treasury_yield_3m                         0.034355           1.000000   \n",
       "bbb_spread                                0.881223          -0.272072   \n",
       "bbb_spread_change                        -0.657093           0.290414   \n",
       "\n",
       "                          bbb_spread  bbb_spread_change  \n",
       "term_spread                 0.392349          -0.465767  \n",
       "stock_mkt_growth            0.417379          -0.762702  \n",
       "real_gdp_growth            -0.820518           0.385007  \n",
       "unemployment_rate_change    0.881223          -0.657093  \n",
       "treasury_yield_3m          -0.272072           0.290414  \n",
       "bbb_spread                  1.000000          -0.716249  \n",
       "bbb_spread_change          -0.716249           1.000000  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# look at correlations\n",
    "df_train[MEV_cols].corr()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "161.0\n",
      "161.0\n",
      "num_components: 19\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['log_TA',\n",
       " 'NI_to_TA',\n",
       " 'Equity_to_TA',\n",
       " 'NPL_to_TL',\n",
       " 'REO_to_TA',\n",
       " 'ALLL_to_TL',\n",
       " 'core_deposits_to_TA',\n",
       " 'brokered_deposits_to_TA',\n",
       " 'liquid_assets_to_TA',\n",
       " 'loss_provision_to_TL',\n",
       " 'NIM',\n",
       " 'assets_growth']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(teY[:, 0].sum())\n",
    "print(df_test.defaulter.sum())\n",
    "print('num_components: %d' % num_components)\n",
    "state_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn import neighbors, linear_model\n",
    "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "\n",
    "col_start = 0 # 19\n",
    "comp_to_keep = num_components"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Do Logistic Regression with a smaller number of predictor, based on analysis of P-values \n",
    "# for the logistic regression with a full set of variables\n",
    "\n",
    "# the original set of predictors\n",
    "# cols_to_use = state_cols + MEV_cols  \n",
    "\n",
    "# a smaller set is based on the analysis of P-values for the logistic regression\n",
    "cols_to_use = ['log_TA', 'NI_to_TA', 'Equity_to_TA', 'NPL_to_TL',\n",
    "               'core_deposits_to_TA',\n",
    "               'brokered_deposits_to_TA',\n",
    "               'liquid_assets_to_TA',\n",
    "               'FDIC_assessment_base_n'\n",
    "              ] + ['term_spread','stock_mkt_growth']\n",
    "              \n",
    "cols_to_use = state_cols + MEV_cols"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Make corrections for downsampling\n",
    "compute the ratio \n",
    "$$r = N_{Y=0}^{\\text{sub_sampled}}/N_{Y=0}^{\\text{total}}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "48.78813559322034\n",
      "47.163654288531056\n",
      "1.0344434995378278\n"
     ]
    }
   ],
   "source": [
    "# it would be more accurate to adjust for a different average number of observations for failed and non-failed banks\n",
    "# but they turn out to be almost equal, so this can be neglected:\n",
    "\n",
    "df_data['num_records'] = df_data.groupby('IDRSSD').size()\n",
    "\n",
    "# average number of observations for failed banks\n",
    "mean_num_obs_failed_banks = df_data.loc[df_data.defaulter==1,'num_records'].mean()\n",
    "mean_num_obs_nonfailed_banks = df_data.loc[df_data.defaulter==0,'num_records'].mean()\n",
    "\n",
    "ratio_av_num_steps = float(mean_num_obs_failed_banks)/mean_num_obs_nonfailed_banks\n",
    "\n",
    "print(mean_num_obs_failed_banks)\n",
    "print(mean_num_obs_nonfailed_banks)\n",
    "print(ratio_av_num_steps)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Receiver Operating Characteristic (ROC)\n",
    "As described in scikit-learn documentation\n",
    "http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html :\n",
    "\n",
    "Receiver Operating Characteristic (ROC) - metric to evaluate classifier output quality.\n",
    "ROC curves typically feature true positive rate on the Y axis, and false positive rate on the X axis. This means that the top left corner of the plot is the “ideal” point - a false positive rate of zero, and a true positive rate of one. This is not very realistic, but it does mean that a larger area under the curve (AUC) is usually better.\n",
    "\n",
    "The “steepness” of ROC curves is also important, since it is ideal to maximize the true positive rate while minimizing the false positive rate."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Decision Trees\n",
    "\n",
    "###  Decision Tree Classifier Part 1\n",
    "\n",
    "In this exercise use **DecisionTreeClassifier** from module sklearn.tree to classify banks into defaulters and non-defaulters. Use the following parameters to instantiate DecisionTreeClassifier\n",
    "\n",
    " - The maximum depth of the tree. Value = 5\n",
    " - The minimum number of samples required to split an internal node. Value = 50 (be sure to pass an integer)\n",
    " - Class weight: 'balanced'. The “balanced” mode uses the values of y to automatically adjust weights inversely proportional to class frequencies in the input data as n_samples / (n_classes * np.bincount(y))\n",
    " - Threshold for early stopping in tree growth. A node will split if its impurity is above the threshold, otherwise it is a leaf. Value = 0.1\n",
    " - The minimum weighted fraction of the sum total of weights (of all the input samples) required to be at a leaf node. Samples have equal weight when sample_weight is not provided. Value = 0.01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ROC_auc =  0.966952868104\n",
      "KS_test =  0.876762879065\n",
      "AUC score: 0.966953 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nqNhuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc42536ecc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn import neighbors, linear_model\n",
    "from sklearn import metrics \n",
    "\n",
    "random_state = 1873111803\n",
    "def plot_roc(model, parameters, y_true):\n",
    "    \"\"\"\n",
    "    Arguments:\n",
    "    model - trained model such as DecisionTreeClassifier, etc.\n",
    "    parameters - array-like or sparse matrix of shape  [n_samples, n_features]. The input samples. \n",
    "    y_true - True binary labels in range {0, 1} or {-1, 1}. If labels are not binary, pos_label should be explicitly given.\n",
    "    \"\"\"\n",
    "    if model is None:\n",
    "        return 0., 0., np.array([])\n",
    "    \n",
    "    predicted = model.predict_proba(parameters)[:,1]\n",
    "    threshold = 0.5\n",
    "    predicted_binary = (predicted > threshold).astype(int)\n",
    "    \n",
    "    fpr, tpr, threshold = metrics.roc_curve(y_true, predicted, pos_label=1)\n",
    "\n",
    "    roc_auc = metrics.auc(fpr, tpr) \n",
    "    ks = np.max(tpr - fpr) # Kolmogorov-Smirnov test\n",
    "\n",
    "    print('ROC_auc = ', roc_auc)\n",
    "    print('KS_test = ', ks)\n",
    "    print('AUC score: %f ' % metrics.roc_auc_score(y_true, predicted)) \n",
    "\n",
    "    try:\n",
    "        plt.title('%s ROC curve ' % model.__class__.__name__)\n",
    "        plt.plot(fpr, tpr, 'b', label='AUC = %0.2f' % roc_auc)\n",
    "        plt.legend(loc='lower right')\n",
    "        plt.plot([0,1], [0,1], 'r--')\n",
    "        plt.xlabel('False positive rate')\n",
    "        plt.ylabel('True positive rate')\n",
    "\n",
    "        # plt.savefig('ROC_curve.png')\n",
    "        plt.show()\n",
    "    except: pass\n",
    "    return roc_auc, ks, threshold\n",
    "\n",
    "roc_auc = 0. \n",
    "ks = 0.\n",
    "single_tree = None\n",
    "### START CODE HERE ### (≈ 5-8 lines of code)\n",
    "# Instantiate Decision Tree Classifier and fit the model\n",
    "# Reference Decision Tree Classifier model using single_tree variable\n",
    "# Use cols_to_use attributes from df_train data set. Labels are in column defaulter\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "single_tree = DecisionTreeClassifier(max_depth=5,\n",
    "                                     min_samples_split=50,\n",
    "                                     class_weight=\"balanced\",\n",
    "                                     min_impurity_split=0.1,\n",
    "                                     min_weight_fraction_leaf=0.01)\n",
    "### END CODE HERE ###\n",
    "\n",
    "if single_tree is not None:\n",
    "    # threshold : Decreasing thresholds on the decision function used to compute fpr and tpr. thresholds[0] \n",
    "    # represents no instances being predicted and is arbitrarily set to max(y_score) + 1.\n",
    "    single_tree.fit(df_train[cols_to_use].values, df_train.defaulter)\n",
    "    \n",
    "roc_auc, ks, threshold = plot_roc(single_tree, df_test[cols_to_use], df_test.defaulter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Submission successful, please check on the coursera grader page for the status\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.96695286810376313, 0.87676287906466932]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### GRADED PART (DO NOT EDIT) ###\n",
    "part_1 = np.array([roc_auc, ks]).squeeze()\n",
    "try:\n",
    "    part1 = \" \".join(map(repr, part_1))\n",
    "except TypeError:\n",
    "    part1 = repr(part_1)\n",
    "submissions[all_parts[0]]=part1\n",
    "grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:1],all_parts,submissions)\n",
    "[roc_auc, ks]\n",
    "### GRADED PART (DO NOT EDIT) ###"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  Decision Tree Classifier Part 2\n",
    "Now using DecisionTreeClassifier and the same predictors of bank failure we will predict bank failure within the first year."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ROC_auc =  0.976360245722\n",
      "KS_test =  0.887743162206\n",
      "AUC score: 0.976360 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc4252ec9e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "if single_tree is not None:\n",
    "    single_tree.fit(df_train[cols_to_use].values, df_train.default_within_1Y)\n",
    "roc_auc, ks, threshold = plot_roc(single_tree, df_test[cols_to_use], df_test.default_within_1Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Submission successful, please check on the coursera grader page for the status\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.9763602457218078, 0.88774316220564575]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### GRADED PART (DO NOT EDIT) ###\n",
    "part_2 = np.array([roc_auc, ks]).squeeze()\n",
    "try:\n",
    "    part2 = \" \".join(map(repr, part_2))\n",
    "except TypeError:\n",
    "    part2 = repr(part_2)\n",
    "submissions[all_parts[1]]=part2\n",
    "grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:2],all_parts,submissions)\n",
    "[roc_auc, ks]\n",
    "### GRADED PART (DO NOT EDIT) ###"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Forests\n",
    "\n",
    "### Random Forests Part 3\n",
    "As defined by http://scikit-learn.org/stable/modules/ensemble.html:\n",
    "\n",
    "In random forests (see RandomForestClassifier and RandomForestRegressor classes), each tree in the ensemble is built from a sample drawn with replacement (i.e., a bootstrap sample) from the training set. In addition, when splitting a node during the construction of the tree, the split that is chosen is no longer the best split among all features. Instead, the split that is picked is the best split among a random subset of the features. As a result of this randomness, the bias of the forest usually slightly increases (with respect to the bias of a single non-random tree) but, due to averaging, its variance also decreases, usually more than compensating for the increase in bias, hence yielding an overall better model.\n",
    "\n",
    "Use the following parameters to instantiate **RandomForestClassifier**:\n",
    "\n",
    "- The number of features to consider when looking for the best split. Value = 0.5\n",
    "- The number of trees in the forest. Value = 1000\n",
    "- The maximum depth of the tree. Value = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ROC_auc =  0.992583120205\n",
      "KS_test =  0.950968213372\n",
      "AUC score: 0.992583 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc424a777b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "clf  = None\n",
    " ### START CODE HERE ### (≈ 2 lines of code) \n",
    "# instantiate Random Forest Classifier\n",
    "# reference Random Forest Classifier model using clf variable\n",
    "# ... please set random_state=42 in a random forest classifier of sklearn\n",
    "clf = RandomForestClassifier(max_features=0.5,\n",
    "                             n_estimators=1000,\n",
    "                             max_depth=5,\n",
    "                             random_state=42)\n",
    "### END CODE HERE ###\n",
    "\n",
    "# use all columns for this examples, including marcro economic variables\n",
    "cols_to_use = state_cols[:-1] + MEV_cols  \n",
    "if clf is not None:\n",
    "    clf.fit(df_train[cols_to_use].values, df_train.defaulter)\n",
    "roc_auc, ks, threshold = plot_roc(clf, df_test[cols_to_use], df_test.defaulter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Submission successful, please check on the coursera grader page for the status\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.9925831202046036, 0.95096821337230553]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### GRADED PART (DO NOT EDIT) ###\n",
    "part_3 = np.array([roc_auc, ks]).squeeze()\n",
    "try:\n",
    "    part3 = \" \".join(map(repr, part_3))\n",
    "except TypeError:\n",
    "    part3 = repr(part_3)\n",
    "submissions[all_parts[2]]=part3\n",
    "grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:3],all_parts,submissions)\n",
    "[roc_auc, ks]\n",
    "### GRADED PART (DO NOT EDIT) ###"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Feature importance from random forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucHFWd9/HPl3C/KwRBkiFBgwiKqENQRI0PF8PNeEEJ\nuAgoxijouo8sxIVlUbyAio8guDEqgoIGVkEjBlFZAooiCRgCAZEYA0kMEK4JkVuS3/NHnQmVpntS\nlenu6pn5vl+vfk1dTtf59eme+nXVqT6liMDMzKyoDaoOwMzM+hcnDjMzK8WJw8zMSnHiMDOzUpw4\nzMysFCcOMzMrxYnDrARJr5I0W9JySZ8qUP4sSZel6S5JT0kakuZfJummtK3zlPm+pMcl3drq17I+\nJH1c0kPpdWxXdTxWDSeOQUbSAkkHVh0HgKQZkk6sOo6STgVuiIitIuKCMk+MiAciYsuIWJUWTQAe\nAbaOiM8A+wMHAcMiYnRToy5gXZ8NSRsBXwcOTq/j0T7UNUJSSNpwfbdh1XHisLZL36z762dvF2Bu\nE7d1d7zwK9xdgAURsaLshtq0A34ZsCnNe/3rrZ9/hvq/iPBjED2ABcCBafp44Gbg/wFPAPOB/dLy\nhcDDwHG5514CTAZ+AywHbgR2ya3fD5gJPJn+7pdbNwP4YqrvaeByYBXwDPAUcGEqd36qexlwG/DW\n3DbOAq4EfpDqnwt059YPB64ClgKP9mwzrfswcA/wOHBdPu46bfSutO0nUtyvTsv/tybm3eo8d2Rq\nl+WpnS4ELkvrRgABbJja8nngubStj6Xtrkrzn0vPORyYnWL5A7BXzXt5GjAHeDZt9+XAT1Mb/B34\nVJH2A34IrE7vzVPAqTWvazdgRYr/KeB/0/Ld0+t8DLgX+EDuOYcBf07v5ULgrNy6B3Lbegp4c4rv\nslyZNe3V4DP0SmAb4HvAEmAx8AVgSCr/yvRePEl2ZHdF1f9/A+VReQB+tPkNf3HiWAmcAAxJ/3QP\nABcBmwAHpx3Mlqn8JWn+bWn9+cDv07qXku2Uj007sKPT/HZp/Yy07T3T+o3SshNr4vsXYLtU5jPA\ng8Cmad1ZZDvXQ1O8XwZuSeuGAHeQJcEtyL4Z75/WjQPmAa9O2z0D+EOD9unZQR6UYjw1PXfj3Os4\nsZf2/SPZ6ZxNUjstp07iyLXnF3LPPb6nPdP868mS977p9R2X3r9Ncu/lbLKEuRnZGYTbgDOBjYFd\nyb4MvHNd7Vf72Wjw2mrj34IsIZyQ2vX1ZDvoPdL6McBrU1x7AQ8B7663rVx860octZ+hq4Fvp1h2\nAG4FPpbK/xg4PdW/5vPgR98fPtSzv0fE9yM7734F2U7o8xHxbET8muwb8Stz5X8ZETdFxLNk/5Rv\nljSc7NvlfRHxw4hYGRE/Bv4CHJF77iURMTetf75eMBFxWUQ8msqcR7YDflWuyO8jYnqK94fA69Ly\n0WTftv89IlZExDMR8fu0biLw5Yi4JyJWAl8C9pa0S50Qjkqv8Tcpxq+R7ZT3W1dDSuoC9gH+M7Xf\nTcAv1vW8XkwAvh0Rf4qIVRFxKdmRxZtyZS6IiIUR8XSqe2hEfD4inouI+cB3gPG58o3ab30cTnZq\n7fvp/foz2dHO+wEiYkZE3BkRqyNiDtmO/O19qA9ynyGyLyuHAp9O7/nDZF8cel7v82Sn/15e83mw\nPnLisIdy008DRETtsi1z8wt7JiLiKbJTFC9Pj/trtn0/sHO95zYi6RRJ90h6UtITZKcits8VeTA3\n/U9g03R+fzhwf9qh1NoFOF/SE2mbjwGqia3HWq8jIlanuOuVrffcx2PtPoraNiljF+AzPXGn2Ien\nenosrCn/8pry/0HWN9GjUfutb3z71tT3QWBHAEn7SrpB0lJJT5Il8O172V4Rta93I2BJrv5vkx15\nQHa0KOBWSXMlfbiPdVviKxqsrOE9E5K2JPvW94/0qP0G3wX8KjdfOxTzWvOS3kr2z34AMDciVkt6\nnOyff10WAl2SNqyTPBYCX4yIywts5x9kp1d6YhLZa15c4LlLgJdI2iKXPLp48esuqifuL/ZSJr/t\nhWRHkKPWs76ycS4EboyIgxqs/xFZH88hEfGMpG/wQuKoV9cKYPPc/I7riHEh2RHY9vW+METEg8BH\nASTtD/xW0k0RMa+X12QF+IjDyjpU0v6SNgbOJjtHvhCYDuwm6RhJG0o6CtgDuKaXbT1Edh6+x1Zk\nfS5LgQ0lnQlsXTCuW8l23OdI2kLSppLektZNBj4raU8ASdtIen+D7VwJHCbpgHT56WfIdk5/WFcA\nEXE/MAv4nKSN087qiHU8rTffASamb+5Kr+swSVs1KH8rsFzSaZI2kzRE0msk7VOwvtr3Y12uIXvP\nj5W0UXrsI+nVaf1WwGMpaYwGjsk9dylZZ3y+vtnA29LvXbYBPttb5RGxBPg1cJ6krSVtIOkVkt4O\nIOn9koal4o+TJZ3VJV6fNeDEYWX9CPgvstM9byTrzCaya/oPJ9vRPkp25HB4RDzSy7bOB45MP3i7\ngOxqp18BfyU7xfMMBU5vpfpXke2kX0nWgbqIrL+CiLgaOBeYKmkZcBdwSIPt3Jte0zfJOnqPAI6I\niOeKxEG2c9yXrH3+i+wKpvUSEbPIvjFfSLbjm0fWgd6o/Cqy92BvsiuqHgG+S3a6r4gvA2ek0z6n\nFIhvOdkFFOPJjtQeJGvnTVKRTwCfl7ScrMP+ytxz/0m6QirV96aI+A1ZP9scsk7+3r509PgQ2YUA\nd5O10U+AndK6fYA/SXoKmAb8a+r3sT5ShG/kZMVIugRYFBFnVB2LmVXHRxxmZlaKE4eZmZXiU1Vm\nZlaKjzjMzKyUAfk7ju233z5GjBhRdRhmZv3Gbbfd9khEDC1SdkAmjhEjRjBr1qyqwzAz6zckFR7l\nwKeqzMysFCcOMzMrxYnDzMxKceIwM7NSKk0cksZKulfSPEmT6qz/d0mz0+MuSaskvbSKWM3MLFNZ\n4pA0hOxOc4eQjaJ6tKQ98mUi4qsRsXdE7E02UuaNEfFY+6M1M7MeVR5xjAbmRcT8NPLoVLJbfDZy\nNNkdxMzMrEJVJo6dWXvI7EU0uMuapM2BsWS3paxL0gRJsyTNWrp0aVMDNTOzF/SXzvEjgJt7O00V\nEVMiojsiuocOLfTjx1LGjBnDmDFjmr5dM7P+psrEsZjcbUiBYTS+Ped4fJrKzKwjVJk4ZgKjJI1M\ntyEdT3aXrrWkW0i+Hfh5m+MzM7M6KhurKiJWSjqZ7HahQ4CLI2KupIlp/eRU9D3AryNiRUWhmplZ\nTqWDHEbEdGB6zbLJNfOXAJe0LyozM+tNf+kcNzOzDuHEYWZmpThxmJlZKU4cZmZWihOHmZmV4sRh\nZmalOHGYmVkpThxmZlaKE4eZmZXixGFmZqU4cZiZWSlOHGZmVooTh5mZleLEYWZmpThxmJlZKU4c\nZmZWihOHmZmVUmnikDRW0r2S5kma1KDMGEmzJc2VdGO7YzQzs7VVdutYSUOAi4CDgEXATEnTIuLu\nXJltgW8BYyPiAUk7VBOtmZn1qPKIYzQwLyLmR8RzwFRgXE2ZY4CrIuIBgIh4uM0xmplZjSoTx87A\nwtz8orQsbzfgJZJmSLpN0ofaFp2ZmdVV2amqgjYE3ggcAGwG/FHSLRHx19qCkiYAEwC6urraGqSZ\n2WBS5RHHYmB4bn5YWpa3CLguIlZExCPATcDr6m0sIqZERHdEdA8dOrQlAZuZWbWJYyYwStJISRsD\n44FpNWV+DuwvaUNJmwP7Ave0OU4zM8up7FRVRKyUdDJwHTAEuDgi5kqamNZPjoh7JP0KmAOsBr4b\nEXdVFbOZmVXcxxER04HpNcsm18x/FfhqO+MyM7PG/MtxMzMrxYnDzMxKceIwM7NSnDjMzKwUJw4z\nMyvFicPMzEpx4jAzs1KcOMzMrBQnDjMzK8WJw8zMSnHiMDOzUpw4zMysFCcOMzMrxYnDzMxKceIw\nM7NSnDjMzKwUJw4zMyul0sQhaaykeyXNkzSpzvoxkp6UNDs9zqwiTjMze0Flt46VNAS4CDgIWATM\nlDQtIu6uKfq7iDi87QGamVldVR5xjAbmRcT8iHgOmAqMqzAeMzMroMrEsTOwMDe/KC2rtZ+kOZKu\nlbRne0IzM7NG1pk4JO0m6XpJd6X5vSSd0frQALgd6IqIvYBvAj/rJc4JkmZJmrV06dI2hWdmNvgU\nOeL4DvBZ4HmAiJgDjG9C3YuB4bn5YWnZGhGxLCKeStPTgY0kbV9vYxExJSK6I6J76NChTQjPzMzq\nKZI4No+IW2uWrWxC3TOBUZJGStqYLBlNyxeQtKMkpenRKd5Hm1C3mZmtpyJXVT0i6RVAAEg6EljS\n14ojYqWkk4HrgCHAxRExV9LEtH4ycCTwcUkrgaeB8RERfa3bzMzWX5HEcRIwBdhd0mLg78C/NKPy\ndPppes2yybnpC4ELm1GXmZk1xzoTR0TMBw6UtAWwQUQsb31YZmbWqYpcVfUlSdtGxIqIWC7pJZK+\n0I7gzMys8xTpHD8kIp7omYmIx4FDWxeSmZl1siKJY4ikTXpmJG0GbNJLeTMzG8CKdI5fDlwv6ftp\n/gTg0taFZGZmnaxI5/i5kuYAB6RFZ0fEda0Ny8zMOlWh0XEj4lrg2hbHYmZm/UCRq6reK+m+dF+M\nZZKWS1rWjuDMzKzzFDni+ApwRETc0+pgzMys8xW5quohJw0zM+tR5IhjlqQryIY0f7ZnYURc1bKo\nzMysYxVJHFsD/wQOzi0LYEAmjhGTfll3+YPzH224fsE5h7U0JjOzTlLkctwT2hGImZn1D+tMHJI2\nBT4C7Als2rM8Ij7cwrgGpDFjxgAwY8aMSuMwM+uLIp3jPwR2BN4J3Eh2pz6PkGtmNkgVSRyvjIj/\nBFZExKXAYcC+rQ3LzMw6VZHE8Xz6+4Sk1wDbADu0LiQzM+tkRa6qmiLpJcAZZPcE3xL4z5ZGZWZm\nHavIEcf1EfF4RNwUEbtGxA7Ar5tRuaSxku6VNE/SpF7K7SNpZbrfuZmZVahI4vhpnWU/6WvFkoYA\nFwGHAHsAR0vao0G5c2lSsjIzs75peKpK0u5kl+BuI+m9uVVbk7sstw9GA/PSPc2RNBUYB9xdU+6T\nZMlrnybUaWZmfdRbH8ergMOBbYEjcsuXAx9tQt07Awtz84uouVpL0s7Ae4B3sI7EIWkCMAGgq6ur\nCeGZmVk9DRNHRPxc0jXAaRHxpTbGlPeNVP9qSb0WjIgpwBSA7u7uaENsZmaDUq99HBGxCnh3i+pe\nDAzPzQ9Ly/K6gamSFgBHAt+S1Kp4zMysgCKX494s6ULgCmBFz8KIuL2Pdc8ERkkaSZYwxgPH5AtE\nxMieaUmXANdExM/6WO+g56FPzKwviiSOvdPfz+eWBfB/+lJxRKyUdDJwHTAEuDgi5kqamNZP7sv2\nzcysNYqMjvuOVlUeEdOB6TXL6iaMiDi+VXGYmVlxRe45vo2kr0ualR7nSdqmHcGZmVnnKfIDwIvJ\nLsH9QHosA77fyqDMzKxzFenjeEVEvC83/zlJs1sVkJmZdbYiRxxPS9q/Z0bSW4CnWxeSmZl1siJH\nHB8HLk39GgIeA45raVRmZtaxilxVNRt4naSt0/yylkdlZmYdq8hVVdtJugCYAdwg6XxJ27U8MjMz\n60hF+jimAkuB95EN+7GU7FfkZmY2CBXp49gpIs7OzX9B0lGtCsjMzDpbkSOOX0saL2mD9PgA2TAh\nZmY2CBVJHB8FfgQ8lx5TgY9JWi7JHeVmZoNMkauqtmpHIGZm1j8U6eNA0l7AiHz5iLiqRTGZmVkH\nW2fikHQxsBcwF1idFgfgxGFmNggVOeJ4U0Ts0fJIzMysXyjSOf5HSU4cZmYGFDvi+AFZ8ngQeJZs\nvKqIiL1aGpmZmXWkIonje8CxwJ280MfRFJLGAueT3Tr2uxFxTs36ccDZqd6VwKcj4vfNjMHMzMop\nkjiWRsS0ZlcsaQhwEXAQsAiYKWlaRNydK3Y9MC0iIl3ZdSWwe7NjMTOz4ookjj9L+hHwC7JTVUBT\nLscdDcyLiPkAkqYC44A1iSMinsqV34Lsai4zM6tQkcSxGVnCODi3rBmX4+4MLMzNLwL2rS0k6T3A\nl4EdgMMabUzSBGACQFdXVx9DMzOzRor8cvyEdgTSS/1XA1dLehtZf8eBDcpNAaYAdHd3+8jEzKxF\nGiYOSadGxFckfZM6p4gi4lN9rHsxMDw3PywtqysibpK0q6TtI+KRPtZtZmbrqbcjjnvS31ktqnsm\nMErSSLKEMR44Jl9A0iuBv6XO8TcAmwCPtigeMzMroGHiiIhfpL+XtqLiiFgp6WSyIdqHABdHxFxJ\nE9P6yWQ3j/qQpOeBp4GjIsKnoczMKlRokMNWiYjpwPSaZZNz0+cC57Y7LjMza6zIkCNmZmZrOHGY\nmVkp60wcknaTdL2ku9L8XpLOaH1oZmbWiYoccXwH+CzwPEBEzCG7AsrMzAahIolj84i4tWbZylYE\nY2Zmna9I4nhE0itIPwKUdCSwpKVRmZlZxypyOe5JZEN57C5pMfB34IMtjcrMzDpWr4lD0gZAd0Qc\nKGkLYIOIWN6e0MzMrBP1eqoqIlYDp6bpFU4aZmZWpI/jt5JOkTRc0kt7Hi2PzMzMOlKRPo6j0t+T\ncssC2LX54ZiZWacrcj+Oke0IxMzM+od1Jg5JH6q3PCJ+0PxwzMys0xU5VbVPbnpT4ADgdsCJw8xs\nECpyquqT+XlJ2wJTWxaRmZl1tPUZHXcF4H4PM7NBqkgfxy944Z7jGwB7AP/TyqDMzKxzFenj+Fpu\neiVwf0QsakblksYC55PdOva7EXFOzfoPAqcBApYDH4+IO5pRt5mZrZ8ip6oOjYgb0+PmiFgkqc+3\nc5U0BLgIOITsKOZoSXvUFPs78PaIeC1wNtmYWWZmVqEiieOgOssOaULdo4F5ETE/Ip4j63Afly8Q\nEX+IiMfT7C3AsCbUa2ZmfdDwVJWkjwOfAHaVNCe3aivg5ibUvTOwMDe/CNi3l/IfAa5ttFLSBGAC\nQFdXVxPCMzOzenrr4/gR2Y76y8Ck3PLlEfFYS6OqIekdZIlj/0ZlImIK6VRWd3d3NCrXDiMm/bLu\n8gfnP9rr+gXnHNaymMzMmqVh4oiIJ4EngaMBJO1A9gPALSVtGREP9LHuxcDw3PywtGwtkvYCvgsc\nEhGP9rFOMzPro3X2cUg6QtJ9ZB3VNwIL6OWUUQkzgVGSRkramOw+5tNq6u4CrgKOjYi/NqFOMzPr\noyKd418A3gT8NQ14eABZR3WfRMRK4GTgOuAe4MqImCtpoqSJqdiZwHbAtyTNljSrr/WamVnfFPkd\nx/MR8aikDSRtEBE3SPpGMyqPiOnA9Jplk3PTJwInNqOuvtrxmHPWXcjMbBAokjiekLQl8DvgckkP\nkw07YmZmg1CRxDEOeBr4NPBBYBvg860MyprDV3eZWSsUGR13haRdgFERcamkzcmGCDEzs0GoyFVV\nHwV+Anw7LdoZ+FkrgzIzs85V5Kqqk4C3AMsAIuI+YIdWBmVmZp2rSOJ4No0lBYCkDXlhmHUzMxtk\niiSOGyX9B7CZpIPI7sXxi9aGZWZmnapI4pgELAXuBD5G9ruLM1oZlJmZda7eRsftiogHImI18J30\nMDOzQa63I441V05J+mkbYrF+ZMyYMYwZM6bqMMysAr0lDuWmd211IGZm1j/0ljiiwbSZmQ1ivf1y\n/HWSlpEdeWyWpknzERFbtzw6MzPrOL3dyMnDipiZ2YsUuRzXzMxsDSeOfsZXM5lZ1Zw4zMyslEoT\nh6Sxku6VNE/SpDrrd5f0R0nPSjqlihjNzGxtRW7k1BKShgAXAQcBi4CZkqZFxN25Yo8BnwLeXUGI\nZmZWR5VHHKOBeRExP42+O5XsboNrRMTDETETeL6KAM3M7MWqTBw7Awtz84vSsvUiaYKkWZJmLV26\ntM/BmZlZfQOmczwipkREd0R0Dx06tOpwzMwGrCoTx2JgeG5+WFpmZmYdrMrEMRMYJWmkpI2B8cC0\nCuMxM7MCKruqKiJWSjoZuA4YAlwcEXMlTUzrJ0vaEZgFbA2slvRpYI+IWNZww2Zm1lKVJQ6AiJhO\ndkfB/LLJuekHyU5hmZlZhxgwneNmZtYeThxmZlaKE4eZmZXixGGV8Ui/Zv2TE4eZmZXixGFmZqU4\ncZiZWSmV/o7DGhsx6Zd1lz84/9Fe1y8457CWxWRmBj7iMDOzknzEYb3ykY+Z1fIRh5mZleLEYWZm\npThxmA0w/mFlZxpI74sTh1kHGUg7l07hNm0+d45by7Wyg71nhzBjxoz1iq1ZOiWOgcbt2pl8xGFm\nZqX4iMOsn1qfIzlfJm3NUGnikDQWOJ/s1rHfjYhzatYrrT8U+CdwfETc3vZArXKd9HuSenUNtN+1\n+BTR2sq0Ryd9VlulssQhaQhwEXAQsAiYKWlaRNydK3YIMCo99gX+O/01a5oqdpKD4Wih3TvbwbDD\n7pSEXuURx2hgXkTMB5A0FRgH5BPHOOAHERHALZK2lbRTRCxpf7hmA4932GvrlNfSKXE0omyf3H6S\njgTGRsSJaf5YYN+IODlX5hrgnIj4fZq/HjgtImbV2d4EYAJAV1fXG++///42vIpymvFtwdvozG00\nS6e8Hm9j4G6jEUm3RUR3kbIDpnM8IqYAUwC6u7uryYbWds34B+qEhNFMndImA6ldO+W1dEocVSaO\nxcDw3PywtKxsGbMBo1N2DJ1iILXHQHotVSaOmcAoSSPJksF44JiaMtOAk1P/x77Ak+7fMLMyBtIO\nu1NUljgiYqWkk4HryC7HvTgi5kqamNZPBqaTXYo7j+xy3BOqitfMzDKV9nFExHSy5JBfNjk3HcBJ\n7Y7L2sPfBM36pwHTOT5YeGdrZlXzWFVmZlaKE4eZmZXixGFmZqU4cZiZWSnuHG8jd2yb2UDgxDEI\nOYGZWV/4VJWZmZXixGFmZqU4cZiZWSnu47D14n4Ss8HLRxxmZlaKE4eZmZXixGFmZqU4cZiZWSlO\nHGZmVooTh5mZlVJJ4pD0Ukm/kXRf+vuSBuUulvSwpLvaHaOZmdVX1RHHJOD6iBgFXJ/m67kEGNuu\noMzMbN2qShzjgEvT9KXAu+sVioibgMfaFZSZma1bVb8cf1lELEnTDwIv6+sGJU0AJqTZpyTd29dt\n1rE98EgLttts/SVOcKyt0l9i7S9xwsCPdZeiBVuWOCT9FtixzqrT8zMREZKir/VFxBRgSl+30xtJ\nsyKiu5V1NEN/iRMca6v0l1j7S5zgWPNaljgi4sBG6yQ9JGmniFgiaSfg4VbFYWZmzVVVH8c04Lg0\nfRzw84riMDOzkqpKHOcAB0m6DzgwzSPp5ZKm9xSS9GPgj8CrJC2S9JFKon1BS0+FNVF/iRMca6v0\nl1j7S5zgWNdQRJ+7F8zMbBDxL8fNzKwUJw4zMyvFiaOGpLGS7pU0T9KLftGuzAVp/RxJb6gozuGS\nbpB0t6S5kv61Tpkxkp6UNDs9zqwi1hTLAkl3pjhm1VnfKe36qlx7zZa0TNKna8pU1q71huEpMYRP\nr5/tNsT5VUl/Se/v1ZK2bfDcXj8rbYr1LEmLc+/xoQ2e27Y27SXWK3JxLpA0u8Fzm9euEeFHegBD\ngL8BuwIbA3cAe9SUORS4FhDwJuBPFcW6E/CGNL0V8Nc6sY4Brqm6XVMsC4Dte1nfEe1a5/PwILBL\np7Qr8DbgDcBduWVfASal6UnAuQ1eS6+f7TbEeTCwYZo+t16cRT4rbYr1LOCUAp+PtrVpo1hr1p8H\nnNnqdvURx9pGA/MiYn5EPAdMJRseJW8c8IPI3AJsm36L0lYRsSQibk/Ty4F7gJ3bHUcTdUS71jgA\n+FtE3F9xHGtE/WF4igzhU+Sz3dI4I+LXEbEyzd4CDGtV/WU0aNMi2tqm0HuskgR8APhxK2MAn6qq\ntTOwMDe/iBfvjIuUaStJI4DXA3+qs3q/dGrgWkl7tjWwtQXwW0m3peFhanVcuwLjafxP2CntCsWG\n8Om09v0w2RFmPev6rLTLJ9N7fHGD03+d1qZvBR6KiPsarG9auzpx9HOStgR+Cnw6IpbVrL4d6IqI\nvYBvAj9rd3w5+0fE3sAhwEmS3lZhLOskaWPgXcD/1FndSe26lsjOSXT0NfaSTgdWApc3KNIJn5X/\nJjsFtTewhOwUUKc7mt6PNprWrk4ca1sMDM/ND0vLypZpC0kbkSWNyyPiqtr1EbEsIp5K09OBjSRt\n3+Ywe2JZnP4+DFxNdpif1zHtmhwC3B4RD9Wu6KR2TR7qOa2nxkP4dET7SjoeOBz4YEpyL1Lgs9Jy\nEfFQRKyKiNXAdxrE0BFtCiBpQ+C9wBWNyjSzXZ041jYTGCVpZPrGOZ5seJS8acCH0lVAbwKezJ0m\naJt0PvN7wD0R8fUGZXZM5ZA0muz9frR9Ua6JYwtJW/VMk3WS1t6cqyPaNafht7dOadecIkP4FPls\nt5SkscCpwLsi4p8NyhT5rLRcTf/aexrEUHmb5hwI/CUiFtVb2fR2beUVAP3xQXZ1z1/JrpY4PS2b\nCExM0wIuSuvvBLorinN/slMSc4DZ6XFoTawnA3PJrva4Bdivolh3TTHckeLp2HZNsWxBlgi2yS3r\niHYlS2ZLgOfJzql/BNiO7IZo9wG/BV6ayr4cmN7bZ7vNcc4j6xPo+bxOro2z0Welglh/mD6Hc8iS\nwU5Vt2mjWNPyS3o+n7myLWtXDzliZmal+FSVmZmV4sRhZmalOHGYmVkpThxmZlaKE4eZmZXixGHW\nC0mfknSPpEa/cm70vBGSjmlVXGZVcuIw690ngIMi4oMlnzcCKJ04JA0p+xyzdnPiMGtA0mSyH05d\nK+n0NNjdrZL+LGlcKjNC0u8k3Z4e+6WnnwO8Nd374N8kHS/pwty2r5E0Jk0/Jek8SXcAb5b0Rkk3\npsHorssNJ/IpZfdfmSNpajvbwizPPwA064WkBUA38H+BuyPiMmU3ILqVbETiAFZHxDOSRgE/joju\nlBROiYjD03aOJ/s1/Mlp/hrgaxExQ1IAR0XElWn8sRuBcRGxVNJRwDsj4sOS/gGMjIhnJW0bEU+0\nsSnM1tiFoIenAAABQklEQVSw6gDM+omDgXdJOiXNbwp0Af8ALpS0N7AK2G09tr2KbLBKgFcBrwF+\nk4bDGkI2xARkw19cLulndNCIvDb4OHGYFSPgfRFx71oLpbOAh4DXkZ36fabB81ey9qnhTXPTz0TE\nqlw9cyPizXW2cRjZHeCOAE6X9Np44cZIZm3jPg6zYq4ju7FPz6i4r0/LtwGWRDb89rFkRwgAy8lu\n6dtjAbC3pA0kDafxkNb3AkMlvTnVs5GkPSVtAAyPiBuA01K9Wzbt1ZmV4MRhVszZwEbAHElz0zzA\nt4DjUsf27sCKtHwOsErSHZL+DbgZ+DtwN3AB2c2gXiSyW5AeCZybtjkb2I8sIV0m6U7gz8AF7uOw\nqrhz3MzMSvERh5mZleLEYWZmpThxmJlZKU4cZmZWihOHmZmV4sRhZmalOHGYmVkp/x/nX4K2OERc\nqwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc424948eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "importance = []\n",
    "if clf is not None:\n",
    "    importance = clf.feature_importances_\n",
    "    importance = pd.DataFrame(importance, index=df_train[cols_to_use].columns, \n",
    "                              columns=[\"Importance\"])\n",
    "\n",
    "    importance[\"Std\"] = np.std([tree.feature_importances_\n",
    "                                for tree in clf.estimators_], axis=0)\n",
    "\n",
    "    x = range(importance.shape[0])\n",
    "    y = importance.iloc[:, 0] \n",
    "    yerr = importance.iloc[:, 1] \n",
    "\n",
    "    plt.bar(x, y, yerr=yerr, align=\"center\")\n",
    "    plt.xlabel('features')\n",
    "    plt.ylabel('Feature importance')\n",
    "    plt.title('Importance of different features')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Importance</th>\n",
       "      <th>Std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>log_TA</th>\n",
       "      <td>0.437772</td>\n",
       "      <td>0.259119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NI_to_TA</th>\n",
       "      <td>0.194119</td>\n",
       "      <td>0.237151</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Equity_to_TA</th>\n",
       "      <td>0.048742</td>\n",
       "      <td>0.071672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NPL_to_TL</th>\n",
       "      <td>0.171102</td>\n",
       "      <td>0.215743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>REO_to_TA</th>\n",
       "      <td>0.041022</td>\n",
       "      <td>0.102201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ALLL_to_TL</th>\n",
       "      <td>0.021591</td>\n",
       "      <td>0.042387</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>core_deposits_to_TA</th>\n",
       "      <td>0.009865</td>\n",
       "      <td>0.012307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>brokered_deposits_to_TA</th>\n",
       "      <td>0.001731</td>\n",
       "      <td>0.005461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>liquid_assets_to_TA</th>\n",
       "      <td>0.011372</td>\n",
       "      <td>0.012959</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>loss_provision_to_TL</th>\n",
       "      <td>0.009430</td>\n",
       "      <td>0.017631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NIM</th>\n",
       "      <td>0.013785</td>\n",
       "      <td>0.017484</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>term_spread</th>\n",
       "      <td>0.004023</td>\n",
       "      <td>0.007524</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stock_mkt_growth</th>\n",
       "      <td>0.002623</td>\n",
       "      <td>0.006551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>real_gdp_growth</th>\n",
       "      <td>0.007370</td>\n",
       "      <td>0.015702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unemployment_rate_change</th>\n",
       "      <td>0.008417</td>\n",
       "      <td>0.019363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>treasury_yield_3m</th>\n",
       "      <td>0.003410</td>\n",
       "      <td>0.007619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bbb_spread</th>\n",
       "      <td>0.010875</td>\n",
       "      <td>0.019673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bbb_spread_change</th>\n",
       "      <td>0.002750</td>\n",
       "      <td>0.006014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          Importance       Std\n",
       "log_TA                      0.437772  0.259119\n",
       "NI_to_TA                    0.194119  0.237151\n",
       "Equity_to_TA                0.048742  0.071672\n",
       "NPL_to_TL                   0.171102  0.215743\n",
       "REO_to_TA                   0.041022  0.102201\n",
       "ALLL_to_TL                  0.021591  0.042387\n",
       "core_deposits_to_TA         0.009865  0.012307\n",
       "brokered_deposits_to_TA     0.001731  0.005461\n",
       "liquid_assets_to_TA         0.011372  0.012959\n",
       "loss_provision_to_TL        0.009430  0.017631\n",
       "NIM                         0.013785  0.017484\n",
       "term_spread                 0.004023  0.007524\n",
       "stock_mkt_growth            0.002623  0.006551\n",
       "real_gdp_growth             0.007370  0.015702\n",
       "unemployment_rate_change    0.008417  0.019363\n",
       "treasury_yield_3m           0.003410  0.007619\n",
       "bbb_spread                  0.010875  0.019673\n",
       "bbb_spread_change           0.002750  0.006014"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "importance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize decision trees as binary tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n54f77rsPQHWiX5ugoCBYWVkhJCQEH374IQBgyZIlOvddWVmJRYsW4X/+53/w/fffa33cxIkTAQBf\nf/21UrZ582ZMmDBB5xi0VVZWBgBKIg8A5ubmAIDi4uJ6j/3hhx9w6NAhFBYWYt++faiqqsKMGTOw\nbNmyFouXiMjYMJknImokdYJaWVlZ63Z9+vXrBwA4evRoC0VXkzqZ37RpE4Dqu/bbtm1r0WTeysoK\nAFBRUaGUqRP8Dh061HvswIED4eLiAnNzc4SEhCAuLg4A8PHHH7dQtERExofJPBGRHlhaWgIACgsL\nW61PPz8/hIaGIjMzU5lu4+DgAH9//3qPa8qceTc3NwDQmE5z8+ZNAEDnzp11ir9nz54AgLNnz+p0\nHBFRW8ZknohID65cuQIAuOeee1q130mTJgGovju/ZcsWjB8/vsFjalseUtvlIoODgwEAFy9eVMou\nXLigsU9b6rv76v8IERERk3kiIr3Yt28fgD+XaQT+nKZTXl7eYv3GxMRApVJh48aN2LJlS4tOsQGA\nUaNGAQAOHz6slKnXw1fvq8tTTz2lsa1+SFc9RYmIiJjMExG1mmvXrqGiogInTpzAvHnzYGlpiVde\neUXZ7+fnB6D6odSysjKcOXOm0X05OjoCAI4fP65MawEADw8PREREKMtCBgYGNroPbTz66KPw9/fH\nwoULkZ2djYyMDCxevBhBQUGYPHmyUm/QoEEa/7EBqpfnPHHiBCoqKnD27FnMmjULJiYmePnll1s0\nZiIiY8JknojoLomJifD29la2vb29sWzZMmXONlCdeC9evFhje+HChcp2QECAMpUGAExMTNCnTx9Y\nW1sjIiICXl5e2LNnD3r16qXUWbJkCTw8PDBt2jSMGDECx48fR8eOHQFUzy/38PDQiCkxMbHWWNev\nX48333wTHTt2xNChQ/HYY49pnJ/6QdiWvisPVE+J2b17N/z9/REYGIgBAwYgPDwcu3btanC6TEhI\nCEaPHg1bW1v06tULlpaWSE5OrndNfCKi9obrzBORwTP2db5VKhVMTEy0WuWmNVy9ehVubm5IT09v\n8OFXMv7rj4jaNK4zT0TUGqqqqvTa/53z8FNSUvDggw8ykSciagOYzBMRtQOTJk1CYWEhdu/ejeee\ne05jihARERkvJvNERC3k5s2bCAgIULY9PT2xatUqvcSyf/9+ODg44MUXX8T69evh6+urlziIiKh5\n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\nrl2jpKQkcnFxIX9/f8rIyDA5hvDwcK1LOeljbpxz5syh4OBgcnV1JU9PT0pISKCdO3eafSztrZjn\n3Dc9p4xZz5iTo61zn+jJwOrq6kru7u40bdo04TKAGjU1NbR8+XIKDQ0lFxcXCgsLozfffJNqa2tb\nbIuLef24H5mXn61tvy36iC3P/U1JuZjn/BXv/GrrHLfWeNW8rSkMFfOyf29UkJOTg5SUFLPmTXUE\nmjmIUnt/SkpKMHjwYCiVSrFDMYo576Pma0vN3Qatzdbbt3ec+9Zhzvsok8mE+dFSxOOG8cToR1Lq\nI5Yef1ucp6Xe38TE44B1mPM+GjjP5lptznxHc+jQIdy7d0/sMARffvklZs6cKXYYrbp37x4OHTok\ndhjMApz75uHcZ021ZT+SQh/h/G9feBwwj636gdzqW+wgxo0bB0A6f53u27cPO3bsEDuMVnXv3l3s\nEJiFOPfNw7nPmmrLfiSFPsL5377wOGAeW/UDLuZNJJXEbW7Xrl1ih2AUqb5/rHVS/b/j3Gf2RIw8\nkEIf4fxvH6T6/yiFHDeGrd4/nmbDGGOMMcaYneJinjHGGGOMMTvFxTxjjDHGGGN2iot5xhhjjDHG\n7BQX84wxxhhjjNkpvVezyc3Nbcs4GGtVUVERAgMDbb4Pzn3GzMN9h9laW4wDAHD69Gnhxj6MScHp\n06f1vtaimO/Rowfkcjnf+YxJ0tChQ2227Z49eyI3N5dzn0mOXC5Hjx49xA5DLx43WFuy5TgAPBkL\nNm7ciI0bN9p0P4yZqmfPnjqXy0iqFw1ljDHGGGOMGZLLc+YZY4wxxhizU1zMM8YYY4wxZqe4mGeM\nMcYYY8xOyQHw5QcYY4wxxhizP6f/H2aIAqf2IOI7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the tree\n",
    "from sklearn.externals.six import StringIO\n",
    "from sklearn import tree\n",
    "import pydot\n",
    "\n",
    "if clf is not None:\n",
    "    try:\n",
    "        dot_data = StringIO()\n",
    "        tree_estimator = clf.estimators_[0]\n",
    "        tree.export_graphviz(single_tree.tree_, out_file=dot_data,\n",
    "                            feature_names=cols_to_use,\n",
    "                            proportion=True,\n",
    "                            max_depth=4)\n",
    "\n",
    "        graph = pydot.graph_from_dot_data(dot_data.getvalue())\n",
    "        # help(graph[0])\n",
    "\n",
    "        from IPython.display import Image, display\n",
    "\n",
    "        def viewPydot(pdot):\n",
    "            plt = Image(pdot.create_png())\n",
    "            display(plt)\n",
    "\n",
    "        viewPydot(graph[0])\n",
    "        # do not write graph to disk, instead write it to the screen\n",
    "        # dependencies on OS X: brew install graphviz\n",
    "        # dependencies on Ubuntu: sudo apt-get install graphviz\n",
    "        # graph[0].write_png('single_tree_graph' + '.png')\n",
    "    except: pass"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Boosted tree\n",
    "\n",
    "### Part 4\n",
    "As per http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html:\n",
    "\n",
    "GradientBoostingClassifier builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions. In each stage n_classes_ regression trees are fit on the negative gradient of the binomial or multinomial deviance loss function. Binary classification is a special case where only a single regression tree is induced.\n",
    "\n",
    "Use the following parameters to instantiate **GradientBoostingClassifier**:\n",
    "\n",
    "- The minimum number of samples required to split an internal node. Value = 5\n",
    "- The number of boosting stages to perform. Gradient boosting is fairly robust to over-fitting so a large number usually results in better performance. Value = 500\n",
    "- Learning rate. Learning rate shrinks the contribution of each tree by learning_rate. There is a trade-off between learning rate and number of boosting stages to perform. Value = 0.05\n",
    "- The maximum depth of the tree. Value = 4\n",
    "- The number of features to consider when looking for the best split. Value = 1.0 (be sure to use float). If float, then max features is a percentage and int(max_features * n_features) features are considered at each split.\n",
    "- random state (be sure to provide and int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ROC_auc =  0.99104859335\n",
      "KS_test =  0.919583485568\n",
      "AUC score: 0.991049 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc424b32a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "gbt = None\n",
    "roc_auc = 0.\n",
    "ks = 0.\n",
    "### START CODE HERE ### (≈ 7 lines of code)\n",
    "# ... please set random_state=42 in a random forest classifier of sklearn\n",
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "gbt = GradientBoostingClassifier(min_samples_split=5,\n",
    "                                 n_estimators=500,\n",
    "                                 learning_rate=0.05,\n",
    "                                 max_depth=4,\n",
    "                                 max_features=1.0,\n",
    "                                 random_state=42)\n",
    "\n",
    "### END CODE HERE ###\n",
    "if gbt is not None:\n",
    "    gbt.fit(df_train[cols_to_use].values,df_train.defaulter)\n",
    "    roc_auc, ks, threshold = plot_roc(gbt, df_test[cols_to_use], df_test.defaulter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Submission successful, please check on the coursera grader page for the status\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.99104859335038364, 0.91958348556814029]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### GRADED PART (DO NOT EDIT) ###\n",
    "part_4 = np.array([roc_auc, ks]).squeeze()\n",
    "try:\n",
    "    part4 = \" \".join(map(repr, part_4))\n",
    "except TypeError:\n",
    "    part4 = repr(part_4)\n",
    "submissions[all_parts[3]]=part4\n",
    "grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:4],all_parts,submissions)\n",
    "[roc_auc, ks]\n",
    "### GRADED PART (DO NOT EDIT) ###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ROC_auc =  0.997111306128\n",
      "KS_test =  0.941385110429\n",
      "AUC score: 0.997111 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nS0lBRERy/T/QW4hbblH92gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc424acde80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "roc_auc = 0.\n",
    "ks = 0.\n",
    "if gbt is not None:\n",
    "    gbt.fit(df_train[cols_to_use].values, df_train.default_within_1Y)\n",
    "    roc_auc, ks, threshold = plot_roc(gbt, df_test[cols_to_use], df_test.default_within_1Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Submission successful, please check on the coursera grader page for the status\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.99711130612841892, 0.94138511042855055]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### GRADED PART (DO NOT EDIT) ###\n",
    "part_5 = np.array([roc_auc, ks]).squeeze()\n",
    "try:\n",
    "    part5 = \" \".join(map(repr, part_5))\n",
    "except TypeError:\n",
    "    part5 = repr(part_5)\n",
    "submissions[all_parts[4]]=part5\n",
    "grading.submit(COURSERA_EMAIL, COURSERA_TOKEN, assignment_key,all_parts[:5],all_parts,submissions)\n",
    "[roc_auc, ks]\n",
    "### GRADED PART (DO NOT EDIT) ###"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "coursera": {
   "course_slug": "machine-learning-in-finance",
   "graded_item_id": "D9SvK",
   "launcher_item_id": "1kSfX"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
